"""   s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ...                   """
it = iter(seq)
result = tuple(islice(it, n))
if len(result) == n:
    yield result
for elem in it:
    result = result[1:] + (elem,)
yield result
Итерация по «окну» соседних элементов в Python