why the while loop is executing more times than expected in printing a pascal triangle? every time the while loop is executed x is incremented by 1 whereas n remains the same I just started learning python please help
memo = {0:1}
def fac(n):
    if n not in memo:
        memo[n] = n*fac(n-1)
        return memo[n]
    else:
        return memo[n]
def pascal(x, space):
    while(x <= n):
        for j in range(space):
            print(" ", end = "")
        for i in range(0, x+1):
            print ( int(fac(x)/(fac(i)*fac(x-i))), end = " " )
        print("\n", end = "")
        x += 1
        space -= 1
        pascal(x, space)
n = eval(input())
space = n
x = 0
pascal(x, space)