Попробуйте что-то вроде этого, это будет работать для n списков длины n:
lists = {}
list = [[1, 2], [1, 2, 3], [1, 2], [1, 2, 3, 4], [1, 2, 3]]
for l in list:
length = len(l)
if lists.get(length) is None:
lists[length] = []
lists[length].append(l)
Это создает словарь, длина которого будет использоваться в качестве ключа для списка списков. Затем он перебирает исходный список и добавляет его к правильному ключу.
Будет выведено что-то вроде этого: {2: [[1, 2], [1, 2]], 3: [[1, 2, 3], [1, 2, 3]], 4: [[1, 2, 3, 4]]}