In this paper, we provide an algorithm that systematically considers all small trees in the search space of genetic programming. These small trees are used to generate useful subroutines for genetic programming. This algorithm is tested on the Artificial Ant on the Santa Fe Trail problem, a venerable problem for genetic programming systems. When four levels of iteration are used, the algorithm presented here generates better results than any known published result by a factor of 7. Categories and Subject Descriptors I.2.6 [Artificial Intelligence]: Learning --- Induction; I.2.8 [Artificial Intelligence]: Problem Solving, Control Methods, and Search --- Heuristic methods. General Terms Algorithms, Performance, Experimentation Keywords Genetic Programming, Representations, Running Time Analysis, Speedup Technique