Calling it a night. There are errors in the difference function but I can't figure them out at the moment. These randomized tests sure do keep me on my toes!
Iterative __iter__. It's messy but it works.