It depends on what you mean by running unchanged. Numpy and scipy also support 2.4 to 2.7 (and soon to 3.1) from the same codebase. But everytime a new version of python is out, we need to make some changes, albeit relatively minors. So it is not perfect either.
Pretty much the only thing you need to do to make your Python code run on 2.x+ is "don't use features released after 2.x".