This version: 1) Supports duplicates only 2) Is very fast (due to use of cython 0.12) 3) Does not have generators (due to use of cython 0.12) 4) felt hackish as I made the changes, but this code remains a good proof of concept