I'd recommend C/C++ if you're willing, as it helps people grasp the limitations of how computers actually think, without delving into assembly. Higher-level langs like Python or Java tend to obscure those, but they still crop up in annoying ways (like how I can use an n-sized int in python, but I'm restricted to a list length of 65535 or something.)
The differences between python 2.x and 3.x are minimal enough that a beginner should probably just stick to 3. It's mostly mild syntax changes for very simple commands (anything more complex is in a library anyways)