Tim's solution is very nice, it comes from basic things often taught in good computer science courses.
In Python when you have to do many (-1)**n you can do: (1-2*(n%2)) This seems quite faster. Bearophile -- http://mail.python.org/mailman/listinfo/python-list