Prefixing that with the statement that "possible" is not at all the same as "useful", "easy", "simple" or "general good practice", I'd state, you can do a huge lot with Python.
And I'd even question Rich Seller saying systrem programming isn't possible with python.
One possible meaning of "system programming" - system manegement tools and scripts for system administration are more and more written in python.
And about the OS and driver thing - defintely, you'd choose C when you're about to write a Linux device driver. On the other hand, I don't think it's impossible to do that in Python - if you really want to for some reason (and may it be only to prove it's possible).
I'm more into java usually, and I know there even exists an (definitely experimental and not production ready) OS written in Java. I don't see why that shouldn't be possible in Python, too.
In the end, you always have machine code to be run on your CPU - be it an OS kernel, a web application or a shell script - and all environments produce this type of code sooner or later, more or less directly.
So, no, I don't think there are too many real limits - while there always might be reasons to choose another language for something - for technical or other reasons (you shouldn't expect a team of experienced Java developers write a sophisticated Python high performance application from one day to another).
For your career, I think it's good to concentrate on one language and get very good at it and know each and every tweak - but it's also considered good practice for developers to learn one new language per year.