如何增加 Python 中的最大递归深度?

How could you increase the maximum recursion depth in Python?

今天 class 中的递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加 Python 中的最大递归深度?编写了一个使用递归查找 n 的阶乘的快速函数:

def factorial(n):
    if n == 1:
        return n
    else:
        return n * factorial(n-1)

它可以处理factorial(994) 但不能处理factorial(995)。给出的错误是:

RuntimeError: maximum recursion depth exceeded in comparison

显然可以迭代找到更高的阶乘,但是为了争论和阴谋,最大递归深度可以增加吗?

import sys

sys.setrecursionlimit(2000)
import sys

iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)