Найти все уникальные подмножества набора значений

У меня проблема с алгоритмом. Я пытаюсь найти все уникальное подмножество значений из большего набора значений.

Например, скажем, у меня есть набор{1,3,7,9}, Какой алгоритм я могу использовать, чтобы найти эти подмножества 3?

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

Подмножества не должны повторяться, и порядок не важен, набор {1,2,3} такой же, как набор {3,2,1} для этих целей. Псудокод (или обычный вид) приветствуется.

Подход грубой силы, очевидно, возможен, но не желателен.

Например, такой метод грубой силы будет следующим.

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

К сожалению, для этого требуется дополнительный цикл для каждого элемента, требуемого в подмножестве, что нежелательно, если, например, вы хотите подмножество из 8 элементов.

Ответы на вопрос(2)

Ваш ответ на вопрос