this turns the recursion in to a loop:
def checkNextID(ID): global numOfRuns, curRes, lastResult while ID < lastResult: try: numOfRuns += 1 if numOfRuns % 10 == 0: time.sleep(3) # sleep every 10 iterations if isValid(ID + 8): parseHTML(curRes) ID = ID + 8 elif isValid(ID + 18): parseHTML(curRes) ID = ID + 18 elif isValid(ID + 7): parseHTML(curRes) ID = ID + 7 elif isValid(ID + 17): parseHTML(curRes) ID = ID + 17 elif isValid(ID+6): parseHTML(curRes) ID = ID + 6 elif isValid(ID + 16): parseHTML(curRes) ID = ID + 16 else: ID = ID + 1 except Exception, e: print "somethin went wrong: " + str(e)