Python portfolio optimization with constraints