can someone explain this code to me in detail? im trying to grasp how recursion is working here especially how previous_lines is building up as a list. I'm getting confused to the point where n==2, I wonder why it doesn't show out of array error for previous_lines[i+1] where previous_lines does not even have 2 elements when n==2 is used. I surmise that previous_lines is only [1] at n==2
def pascal(n):
if n == 1:
return [1]
else:
line = [1]
previous_line = pascal(n-1)
for i in range(len(previous_line)-1):
line.append(previous_line[i] + previous_line[i+1])
line += [1]
return line
print(pascal(6))