In [1]: l = list(range(10))
In [2]: [l[i:i+2] for i in range(0,len(l),2)]
Out[2]: [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
Был бы более идиоматический способ сделать это.
Вдохновленный itertools ответ можно сделать
list(zip(*([iter(range(10))] * 2)))
или
from itertools import zip_longest
list(zip_longest(*([iter(range(9))] * 2), fillvalue='x'))