import itertools
def sliding_window(seq, window_size):
raw_iters = itertools.tee(seq, window_size)
iters = [itertools.islice(it, step, None) for step,it in enumerate(raw_iters)]
yield from zip(*iters)
import itertools
def sliding_window(seq, window_size):
raw_iters = itertools.tee(seq, window_size)
iters = [itertools.islice(it, step, None) for step,it in enumerate(raw_iters)]
yield from zip(*iters)