Не могу додуматься как написать функцию которая преобразует входной список след. образом

Есть список [1, 1, 2, 3, 3, 2, 2, 4] На выходе надо получить [[1, 1], [2], [3,3], [2, 2], [4] То есть добавлять надо список состоящий из вот таких одинаковых, последовательно идущих чисел. Сижу уже долго, пытался рекурсией запилить, не вышло че т. Буду благодарен за наводку или псевдокод

P.S. Не судите строго:) Возможно тут полный бред написан, но у меня голова уже не работает и с рекурсией я не особо писал. Здесь я вместо выхода из рекурсии подумал обернуть все в try/except, но что то не так пошло. Данная шляпа возвращает None

result = []
def split(array: list):
    try:
        partition = []
        current_elem = array.pop(0)
        partition.append(current_elem)

        for elem in array:
            if elem == current_elem:
                partition.append(elem)
            else:
                result.append(partition)
                start_idx = array.index(elem)
                split(array[:start_idx])
    except IndexError as e:
        return result

Ответы (3 шт):

Автор решения: SwaD

Можно вот так преобразовать список в список списков повторений

res = []
def uniq(array):
    part = [array[0]]
    current = array.pop(0)
    if len(array) == 0:
        res.append(part)
    iter = 0
    for elem in array:
        if elem == current:
            part.append(elem)
            iter += 1
            if len(array) == iter:
                res.append(part)
        else:
            res.append(part)
            uniq(array[iter:])
            break
uniq(lst)
print(res)
→ Ссылка
Автор решения: Алексей Р

Если необязательно рекурсией, то можно через itertools.groupby

from itertools import groupby

lst = [1, 1, 2, 3, 3, 2, 2, 4]
out = [list(g) for _, g in groupby(lst)]
print(out)
[[1, 1], [2], [3, 3], [2, 2], [4]]
→ Ссылка
Автор решения: gil9red

Через простой цикл:

items = [1, 1, 2, 3, 3, 2, 2, 4]
new_items = [[items[0]]]
for i in range(1, len(items)):
    x = items[i]
    sub = new_items[-1]
    if x in sub:
        sub.append(x)
    else:
        new_items.append([x])

print(new_items)
# [[1, 1], [2], [3, 3], [2, 2], [4]]
→ Ссылка