Для начала хватит. Дальше можешь оптимизировать, если оно потребуется вообще.
>>> def split_list(lst, n):
... out = []
... tmp = []
... for i in lst:
... tmp.append(i)
... if len(tmp) == n:
... out.append(tmp)
... tmp = []
... if tmp:
... out.append(tmp)
... return out
...
>>> split_list([1, 2, 3, 4, 5, 6], 1)
[[1], [2], [3], [4], [5], [6]]
>>> split_list([1, 2, 3, 4, 5, 6], 2)
[[1, 2], [3, 4], [5, 6]]
>>> split_list([1, 2, 3, 4, 5, 6], 3)
[[1, 2, 3], [4, 5, 6]]
>>> split_list([1, 2, 3, 4, 5, 6], 4)
[[1, 2, 3, 4], [5, 6]]
>>> split_list([1, 2, 3, 4, 5, 6], 5)
[[1, 2, 3, 4, 5], [6]]
>>> split_list([1, 2, 3, 4, 5, 6], 6)
[[1, 2, 3, 4, 5, 6]]
>>> split_list([1, 2, 3, 4, 5, 6], 7)
[[1, 2, 3, 4, 5, 6]]
>>>