Algoritmo para generar (no del todo) conjunto de expansión en Python

Esto se deduce de esta pregunta:

Algoritmo para generar un conjunto de expansión

Dada esta entrada: [1,2,3,4]

Me gustaría generar este conjunto de conjuntos en 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]

Así que, a diferencia de la pregunta anterior, se mantiene el orden de la lista.

Idealmente, el código funcionaría para n elementos en la lista

Muchas gracia

EDIT 2: ¿Alguien podría aconsejarme sobre cómo hacer esto si la entrada original es una cadena en lugar de una lista (donde cada palabra en la cadena se convierte en un elemento en una lista). ¡Gracias

EDIT: agregado [1] [2, 3, 4] Perdón por el error

Respuestas a la pregunta(6)

Su respuesta a la pregunta