Imprime todas as partições inteiras exclusivas dadas um inteiro como entrada

Eu estava resolvendo um exercício de programação e me deparei com um problema sobre o qual não fui capaz de encontrar satisfatoriamente uma solução. O problema é o seguinte:

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 ex: Input = 4, então a saída deve ser Output =

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

Como devo pensar em resolver este problema? Eu queria saber sobre o uso de recursão. Alguém pode me fornecer um algoritmo para essa pergunta? Ou uma sugestão para solução. qualquer explicação para esse tipo de problema é bem-vinda. (Eu sou um iniciante no mundo da programação) Obrigado !!

questionAnswers(4)

yourAnswerToTheQuestion