I can recommend the excellent Geographic lib::Geodesic for this having used it in the past.
http://geographiclib.sourceforge.net
There is a python implementation available as well. http://pypi.python.org/pypi/geographiclib
http://geographiclib.sourceforge.net
There is a python implementation available as well. http://pypi.python.org/pypi/geographiclib