'Create a new iterator over this list starting at the given offset.'

def iterate_from(self, start):

    while (len(self._cache) < start):
        v = next(self._it)
        self._cache.append(v)
    i = start
    while (i < len(self._cache)):
        (yield self._cache[i])
        i += 1
    while True:
        v = next(self._it)
        self._cache.append(v)
        (yield v)
        i += 1
