Cellular automata models have historically been a major approach to studying the information-processing properties of self-replication. Here we explore the feasibility of adopting genetic programming so that, when it is given a fairly arbitrary initial cellular automata configuration, it will automatically generate a set of rules that make the given configuration replicate. We found that this approach works surprisingly effectively for structures as large as 50 components or more. The replication mechanisms discovered by genetic programming work quite differently than those of many past manually designed replicators: There is no identifiable instruction sequence or construction arm, the replicating structures generally translate and rotate as they reproduce, and they divide via a fissionlike process that involves highly parallel operations. This makes replication very fast, and one cannot identify which descendant is the parent and which is the child. The ability to automatically generate self-replicating structures in this fashion allowed us to examine the resulting replicators as their properties were systematically varied. Further, it proved possible to produce replicators that simultaneously deposited secondary structures while replicating, as in some past manually designed models. We conclude that genetic programming is a powerful tool for studying self-replication that might also be profitably used in contexts other than cellular spaces.