Add python solution to challenge 18