I love itertools; it's one of the most beautiful, composable standard libs.
Whenever I have an iteration problem, there's almost always an itertools
routine that fits it perfectly. Sometimes, however, neither itertools nor the
recipes included in its docs do quite what I need.
Here I've collected several routines I've reached for but not found. Since
they are deceptively tricky to get right, I've wrapped them up into a library.
We've also included implementations of the recipes from the itertools
documentation. Enjoy! Any additions are welcome; just file a pull request.