If we just return the itertools.chain of both iterators we end up with duplicate results due to the way the result cache is populated.