I think the simplest solution would be just to use a generator... ************************************ def rollover(argMaxNumber=20): while True: for i in range(1, argMaxNumber+1): yield i ########### test the rollover generator... r = rollover(5) for i in range(33): print i, "=", r.next() *************************************