import sys
def fact(x):
##print 'entered fact ', x
if x==1:
result= 1
else:
result= fact (x-1)*x
print 'leaving fact ', result
return result
def fact_tail_call(x,c):
#print 'entered fact_ ', x, ' ', c
if x==1:
print c
raise 'done'
#result= c
else:
result= fact_ (x-1,c*x)
print 'leaving fact_ ', result
return result
fact (200)
fact_tail_call (200, 1)