I'm not a great advocate of recursion - pieces of code that call themselves; most of the examples that I see in books are "training examples" that are over complex and achieve results that could much more easily be achieved by alternative means. I'm not telling you NEVER to use recursion - sometimes (such as when you're traversing XML, for example) it does work very well.

Anyway - one of the dangers of code that calls itself is that it will get into an endless loop and so there will be a limit to the number of levels deep you can go. That defaults to 1000 in Python, but you can increase it - there's a setrecursionlimit method in the sys class. Here's an example of it in use:

# Python defaults to a recursion limit of 1000 levels, which
# you can change - see this example. Beware - it's said
# that the standard windows build has a hard limit of 2000
# that you cannot exceed!

import sys

sys.setrecursionlimit(1500)

def zz(x):
if x < 1: return 0
result = zz(x-1) + x
return result

print zz(1200)

Without that extra line, you get the error messageRuntimeError: maximum recursion depth exceeded
when you run the code

This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.