profondeur maximum de récursivité dépassé en comparaison

J'ai écrit ce morceau de code pour calculer le nombre de combinaisons:

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

def combinations(n,k):
    return fact(n)/((fact(n - k) * fact(k)))

while(True):
    print(combinations(int(input()), int(input())))

La fonction factorielle semble bien fonctionner. Mais pourquoi est-il me donner un maximum de profondeur de récursion dépassé en comparaison d'erreur lorsque j'essaie de trouver des combinaisons de deux nombres? Est-il quelque chose de mal avec la fonction factorielle, car c'est là l'erreur semble provenir de l'?

C'était l'erreur que j'ai obtenu:

les builtins.RuntimeError: le maximum de la profondeur de récursion dépassé en comparaison

Et les 2 numéros.
Il n'y a rien de mal avec math.factorial?
et quel est le problème avec scipy.misc.comb?

OriginalL'auteur Daniel Cook | 2013-11-17