The python benchmark is contaminated. Lots of &#60;= checks, increasing variables, etc. Those things need to be left out of the timing. How about using itertools.product instead?<p><pre><code>  for latA, lngA, latB, lngB in itertools.product(*[xrange(-90,91), xrange(-180,181)]*2):
      distance(latA, lngA, latB, lngB)
</code></pre>
Not sure it's faster, but certainly more idiomatic.<p>Also, the 2nd python example doesn't work; you need to drop all the 'math.' and use radians, sqrt, etc directly.