pascal triangle dynamic programming python