def fact(n, look_up={(0): 1}):
    if n not in look_up:
        print('recursing when n is {}'.format(n))
look_up[n] = n * fact(n - 1)
return look_up[n]
Рекурсивный факториал с использованием dict вызывает RecursionError