На этот вопрос уже есть ответ здесь:
Можете ли вы придумать хороший способ (может быть, с помощью itertools), чтобы разбить итератор на фрагменты заданного размера?
Следовательно, l = [1,2,3,4,5,6,7]
с фрагментами (l, 3)
становится итератором [1,2,3], [4,5,6], [7]
Я могу придумать небольшую программу для этого, но не лучший способ с itertools.