Ok, the correct answer is: "It depends", mostly on what you want to do.
From the sounds of it you want to "improve your programming skills", what do you mean by this?
If you mean you want to find good tools to get stuff done, and solve problems or do something fun/useful, you should choose Python for higher level stuff. Don't worry about performance so much as you can always optimize it later.
Python is a joy to program with as you don't need to worry about much of the cruft in other languages and typically can focus on the application logic itself. Python will mainly improve your programming skills in the area of designing/implementing an entire application, OO concepts, and functional concepts as well as introduce a lot of syntactic sugar. I recommend running
import this to get an idea of what the Python community is about. Python is a different mindset from Java, one where the programmer is treated as an adult that knows what they are doing. There are very little arbitrary decisions made for you. Python typically has chosen the simplest/easiest to understand solution for the problems any language needs to solve. It remains very explicit relative to other scripting languages, so it's very easy to comprehend and read once you get past the syntax difference between it and Java/C/C++. Python also has bindings to many of the C/C++ libraries/APIs.
If you want to see why Java was created you can code in C++ :). I really cannot think of a good use case for C++ that doesn't involve a bunch of pre-existing C++ programmers or a great C++ library/api (ie. http://qt.nokia.com/products/). I personally consider it one of the most complicated programming languages there is. However, if your goal is simply to learn, it's a pretty darn good language for that, as there a lot of problems to solve and things to know to get your code working well.
Edit: Since I couldn't think of a good use case for C++ I found a great thread where C++ programmers state why they use it :) http://lambda-the-ultimate.org/node/663. But since I cannot condone C++, personally, I also have to link to this funny interview http://harmful.cat-v.org/software/c++/I_did_it_for_you_all
C is a great language for learning for many of the same reasons as C++, but the language itself isn't nearly as complicated. C and C's concepts are everywhere. C compliments Python, Java, AND C++ so for a pure learning experience, I would recommend C over any of them. Memory management and pointers are critical concepts to fully grasp.