Look at this recursive fizzbuzz function from http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html
def fizzbuzz(num): if num: if num % 15 is 0: return fizzbuzz(num-1) + 'fizzbuzz \n' elif num % 5 is 0: return fizzbuzz(num-1) + 'buzz \n' elif num % 3 is 0: return fizzbuzz(num-1) + 'fizz \n' else : return fizzbuzz(num-1) + ('%d \n' % num) return '' print fizzbuzz(100) This returns "1 2 fizz 4 ...etc... 97 98 fizz buzz" which is correct. However, when I try to decipher the logic of the function I imagine the solution reversed as "buzz fizz 98 97 ...etc... 4 fizz 2 1". After all, the first num is 100 which decrements by one until a zero stops the recursive loop. My (faulty) reasoning is that fizzbuzz(100) would firstly print a "fizz" and the last fizzbuzz(1) would finally print a "1". My logic is wrong, but I don't know why. -- http://mail.python.org/mailman/listinfo/python-list