http://www.pythontutor.com/visualize.html#mode=display
Separate topic: Comment of the first part of the series:
>Alternative title: I wish Python had tail-call elimination.
I really like Python a lot and there are many features that could be added to Python, but on the other hand, Python is just nice as it is, as long as what you're trying to do fits into its capabilities. There's also the case of some of those potential features threatening to go against the Zen of Python (particularly "There should only be one way to do it" and "If the implementation is hard to explain, it's a bad idea.")
If you are going to require high-performance * , or things that collide with the Global Interpreter Lock, etc, then simply Python is not the best choice. I'd also liked Python to have Tail Call Elimination, along with many other features I would love Python to have, but for those I simply use Common Lisp, which does have them (plus a ton of other features), however it will not produce code as beginner-friendly as with Python.
* PyPy can only get you so far here.