Python solution to problem 3