Imprima todas las particiones de enteros únicos dado un entero como entrada

Estaba resolviendo un ejercicio de programación y encontré un problema sobre el cual no puedo encontrar una solución satisfactoria. El problema es el siguiente:

Print all unique integer partitions given an integer as input.
Integer partition is a way of writing n as a sum of positive integers.

por ejemplo: Entrada = 4, entonces la salida debería ser Salida =

  1 1 1 1
  1 1 2
  2 2
  1 3
  4

¿Cómo debo pensar en resolver este problema? Me preguntaba sobre el uso de la recursión. ¿Alguien puede proporcionarme un algoritmo para esta pregunta? O un indicio hacia la solución. Cualquier explicación para este tipo de problemas es bienvenida. (Soy un principiante en el mundo de la programación) ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta