Yep, you need to open 80,443 and 902 ... 80 & 443 for the actual client connectivity - they just use the web services the server presents at https://<server>/sdk
for the vmware client.
902 is the port they use for console redirection.
When you say EXS...I assume you are taking about ESX? If so, then they are different products.
VMWare ESX is the hypervisor which runs the actually virtualization. Think about it this way - ESX is the operating system of the host server.
vSphere is the fancy name for the latest version of VMware...but it's still basically ESX. Prior to vSphere, the product line was VMware Virtual Infrastructure 3...vSphere is the name for version 4.
So in a nutshell, both vSphere and ESX are hypervisors, or what you referred to as a "hardware solution". You don't need "both", because that's like saying you need "both" windows 2003 and windows 2008 :)
If both ESX and vSphere are approved, then you could get either.
Now, to further confuse things...in the VI 3 world, the management system was called Virtual Center - which is a management server for managing multiple ESX hosts. If you only have one host, you don't really need VCenter. In vSphere, it's called vSphere.
My guess from your brain dump is that at your company, they're saying you could provision a hardware server with ESX, but also have vSphere available for management.
Best Answer
You should probably look at VMWare VIX API:
http://www.vmware.com/support/developer/vix-api/
Unfortunately it doesn't have python support. I don't know if it would be possible to make python use the C support? You could use perl or Powershell
If it has to be python then there is pyvix:
http://sourceforge.net/projects/pyvix/
I've never used it and don't know if it works.