[EMAIL PROTECTED] wrote: > ... if not bool: > ... reTest(True)
> I don't understand why results are returned twice? is there something > special i missed about recursive functions? Yes, although it is not clear *what* it is that you are missing. Here is my guess: you fail to see that reTest *continues* after the recursive call returns. So you get this reTest(False) result = [] reTest(True) result = [] print "YAHH" result = ["should be the only thing returned"] print "printing result: " print ["should be the only thing returned"] return ["should be the only thing returned"] # result value discarded by caller print "printing result: " print [] return [] # interactive shell prints result value: [] If you agree that this is what happens, please explain what it is that you were missing. Alternative guesses what it is that you are missing: - there is one result variable per reTest call, as result is not global - you forgot to assign the result of the recursive call - you missed the fact that the interactive shell also prints the final result. Possible corrections: 1. you only want a single print statement executed. Write ... if not bool: ... return reTest(True) 2. you never want the empty list printed. Write ... if not bool: ... result = reTest(True) 3. you don't want the interactive shell to print the value. Write >>> res = reTest(False) HTH, Martin -- http://mail.python.org/mailman/listinfo/python-list