# Incrementing a string -- puzzing "solution"...

Pierre Fortin pfortin at pfortin.com
Thu Sep 16 06:44:38 CEST 2004

```On Wed, 15 Sep 2004 15:08:20 -0700 John wrote:

> This conveniently steps through the alphabet, then goes on to aa, ab,ac,

Puzzling...  I hacked at this problem as a flexibility learning exercise
and actually got this to work; but... does 'while True' in a generator
have side-effects...??  Or generator recursion?

Maybe I'm just tired -- I don't see how the string actually _grows_ inside
the while....  :^?

I was just expecting the prefix to be '', then 'a'...'z' giving a..z,
aa..az, ba..bz, ... za..zz -- not continuing through aaa...azz and
onwards... It's cool; but boggles my mind at the moment...  not that
that's a stretch...  :^)

def ascinc(start='a',end='z'):
g = ascinc(start,end)
prefix = ''
while True:
for i in range(ord(start[-1]),ord(end[-1])+1):
yield (prefix + chr(i))
prefix = g.next()

print "what you wanted..."
g = ascinc('a')

for i in range(100):
print g.next(),

print
print "including some flexibility..."

g = ascinc('0','1')

for i in range(100):
print g.next(),

```