A

u

t

o

g

r

a

m

G

e

n

e

r

a

t

o

r

An autogram is a sentence that describes itself by providing an inventory of its own characters. A pangram is a sentence that contains every letter of the alphabet. This website generates autogramic pangrams (also called self-enumerating pangrams): sentences that have both of these properties!

The first autogramic pangram in English was produced by Lee Sallows in 1984:

This pangram contains four as, one b, two cs, one d, thirty es, six fs, five gs, seven hs, eleven is, one j, one k, two ls, two ms, eighteen ns, fifteen os, two ps, one q, five rs, twenty-seven ss, eighteen ts, two us, seven vs, eight ws, two xs, three ys, & one z.

This website is powered by Rosette, a solver-aided programming system built on top of the programming language Racket. The advantage of using Rosette for this task is that it can interface with the SMT solver Z3, which is able to search for autograms in a manner that could be described as "brute force but smarter": it checks number assignments, and for every assignment that fails, Z3 will not check another assignment that would fail for the same reason.

This website make use of two optimizations described in Lee Sallows's original paper on autograms. The first is that some letters do not appear an any of the words between "zero" and "fifty", and the quantities of those letters are pre-calculated. The second optimization is that for the other letters, the search is narrowed based on letter frequency. The ranges in this program are based on those in Chris Patuzzo's implementation, and are as follows:

E: 25-33
F: 4-9
G: 2-7
H: 3-9
I: 8-14
L: 0-6
N: 17-23
O: 12-17
R: 3-8
S: 24-30
T: 18-24
U: 1-6
V: 3-8
W: 7-13
X: 0-5
Y: 3-5

Because only the above ranges are checked, there may be an autogram that exists for a given prefix that is not found by this website.