Encontre todos os subconjuntos exclusivos de um conjunto de valores

Eu tenho um problema de algoritmo. Eu estou tentando encontrar todos os subconjunto exclusivo de valores de um conjunto maior de valores.

Por exemplo, digamos que eu tenha o conjunto{1,3,7,9}. Qual algoritmo posso usar para encontrar esses subconjuntos de 3?

{1,3,7}
{1,3,9}
{1,7,9}
{3,7,9}

Os subconjuntos não devem se repetir, e a ordem não é importante, o conjunto {1,2,3} é o mesmo que o conjunto {3,2,1} para esses propósitos. Psudocode (ou o tipo regular) é encorajado.

Uma abordagem de força bruta é obviamente possível, mas não desejada.

Por exemplo, tal método de força bruta seria o seguinte.

for i = 0 to size
  for j = i + 1 to size
    for k = j + 1 to size
      subset[] = {set[i],set[j],set[k]}

Infelizmente, isso requer um loop adicional para cada elemento desejado no subconjunto, o que é indesejável se, por exemplo, você quiser um subconjunto de oito elementos.

questionAnswers(2)

yourAnswerToTheQuestion