recursion depth problem

Michael Bentley michael at jedimindworks.com
Sun Apr 22 15:24:36 EDT 2007


On Apr 22, 2007, at 1:49 PM, proctor wrote:

> i have a small function which mimics binary counting.  it runs fine as
> long as the input is not too long, but if i give it input longer than
> 8 characters it gives
>
> RuntimeError: maximum recursion depth exceeded in cmp
>
> i'm not too sure what i am doing improperly.  is there really a lot of
> recursion in this code?
>
> ==================
>
> import sys
>
> def ch4(item, n=0):
> 	if n < len(item):
> 		if item[n] == '0':
> 			item[n] = '1'
> 			print ''.join(item)
> 			ch4(item)
> 		elif item[n] == '1':
> 			item[n] = '0'
> 			ch4(item, n+1)
>
> ch4(list(sys.argv[1]))
>
> ==================


Yes.  There really is *that* much recursion in that code.  502 levels  
with input length of 8 characters, 1013 with 9 characters, 2035 with  
10 characters...  There's a pattern there ;-)




More information about the Python-list mailing list