Python won't give you what you want..programming languages serves different purposes.
Java and kotlin still remain the best option for people who want to learn android.
Swift for ios.
C# for windows phone, though xamarin.ios and xamarin.android you can acomplish the same task with C# for both android and ios devices.
I use C# professionally with .NET Core (cross platform development). And I tend to use python as a supplementary tool to write short scripts that I often run in a cron. However I can just as easily write a console app in C# and run it in a cron as well.
Additionally, you had asked about iOS and Android development... you can use xamarin with C# and write mobile apps for both platforms.
C++ is great for making you understand deeper details that some languages handle for you (Such as memory management, garbage collection), but it also enables you to manually control lower level things such as hardware, memory, and so on.
Understanding what goes on behind the scenes of a language will allow you to grasp what is happening when you're writing code, and application programming demands that understanding. Research diligently.
Some word of advice:
C# or Java, they're pretty similar in syntaxis with Java being cross platform and C# being more Windows (but it can run under other OSes as well).
That said, it's not a good idea to take either of those as a first ever programming language. A friend of mine decided to make a career switch from chemistry to IT without ever having done any programming, and decided to do C# because it "looks cool and is used a lot".
His problem is that he doesn't have a basis in programming at all and instead of learning programming patterns like if/else switches, functions, good structure and program flow etc, he's blasted with the verbose syntaxis of C#. Especially access modifiers, when do you make it public, private, internal, protected, abstract, when to use interface blablabla. And then the types and generic types.
Then when you're comfortable making programs that actually do what you want in a good way you can worry about types and access modifiers, but not everything at once.
Talking about GUI app, you can build one with almost any of the programming languages though for some reasons, i still prefer java GUI to python.
I think starting from c++ because it is a little harder than python and makes you deal with some details that you have no problem with in other languages such as python. Java is another good choice. After that you can learn python just in few days. :))