thor,
If you would like an explanation of how my iterator works (either the p5 or p6 version), I would be happy to explain. It may not be very clear because I translated a process of doing it by hand on paper to code. There is also the tutorial (How To: Make An Iterator) on building iterators I wrote recently and Roy Johnson's recent Recursively-generated Iterators.