Python Complex Problem