Просто используйте нарезку:
>>> l = list(range(10))
>>> list(zip(l, l[1:], l[2:]))
[(0, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9)]
Будет еще лучше, если вы используете itertools.islice
>>> from itertools import islice
>>> list(zip(l, islice(l, 1, None), islice(l, 2, None)))
[(0, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9)]