Obtener TODAS las permutaciones de TODAS las sublistas de una lista de enteros

He tenido problemas con este problema. Básicamente, tengo una lista de enteros, como

list = [1, 2, 3]

Quiero obtener todas las permutaciones posibles de cada subconjunto. Sé que existen preguntas similares en línea, pero no pude encontrar una que haga cada permutación tan bien como cada subconjunto. En otras palabras, quiero:

function(list) = 
[], [1], [2], [3],
[1, 2], [2, 1], [1, 3], [3,1], [2, 3], [3,2],
[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]

Entiendo que la salida será extremadamente grande incluso para un tamaño de lista de entrada pequeño. Desafortunadamente, no puedo entender cómo hacer un problema así.

¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta