Алгоритм генерации (не совсем) связующего множества в Python

Это следует из этого вопроса:

Алгоритм генерации связующего множества

Учитывая этот вклад: [1,2,3,4]

Я хотел бы создать этот набор наборов в Python:

[1] [2] [3] [4]
[1] [2] [3,4]
[1] [2, 3, 4]
[1] [2,3] [4]
[1,2] [3] [4]
[1,2] [3,4]
[1,2,3] [4]
[1,2,3,4]

Таким образом, в отличие от предыдущего вопроса, порядок списка сохраняется.

В идеале код будет работать для n элементов в списке

Большое спасибо

РЕДАКТИРОВАТЬ 2: Может ли кто-нибудь посоветовать мне, как это сделать, если исходный ввод представляет собой строку, а не список (где каждое слово в строке становится элементом в списке). Спасибо!

РЕДАКТИРОВАТЬ: добавлено [1] [2, 3, 4] Извините за ошибку

Ответы на вопрос(3)

Ваш ответ на вопрос