Yes, you should use a for loop in this situation. Certain functional languages, such as Scheme and various LISP dialects allow for what is called "tail recursion" which effectively eliminates this problem by internally converting recursion to iteration. Python isn't really cut out for heavy recursive work, and the "Pythonic" way of doing things is through the lovely for loop.
-- http://mail.python.org/mailman/listinfo/python-list