你怎么能增加Python中的最大递归深度?

Rob*_*ray 6 python stack-overflow recursion

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

def factorial(n):
    if n == 1:
        return n
    else:
        return n * factorial(n-1)
Run Code Online (Sandbox Code Playgroud)

它可以应对阶乘(994)而不是阶乘(995).给出的错误是:

RuntimeError: maximum recursion depth exceeded in comparison
Run Code Online (Sandbox Code Playgroud)

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

Ayu*_*ush 10

import sys

sys.setrecursionlimit(2000)
Run Code Online (Sandbox Code Playgroud)


Man*_*hit 5

import sys

iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)
Run Code Online (Sandbox Code Playgroud)