Pythonの再帰の深さについてあれこれ

この前、コードを書いていたら次のエラーが出た。

RuntimeError: maximum recursion depth exceeded

どうやら再帰の回数の限界を超えてしまったようだ。で、調べてみるとこれらが引っかかった。

http://hep.planet-koo.com/index.php?g=tech&sid=py_reclimit
Stackless Pythonで関数呼び出しの深さ制限を突破する - ラシウラ

どうやら、再帰の深さはデフォルトで1000が限界だということがわかった。
また、

sys.getrecursionlimit()

http://docs.python.org/library/sys.html#sys.getrecursionlimit
これでそのときの再帰の深さの最大値を取得し、

sys.setrecursionlimit(limit)

http://docs.python.org/library/sys.html#sys.setrecursionlimit
これで再帰の深さの最大値を設定する。