Генерация всех «уникальных» подмножеств набора (не powerset)

Допустим, у нас есть наборS который содержит несколько подмножеств:

- [a,b,c]
- [a,b]
- [c]
- [d,e,f]
- [d,f]
- [e]

Скажем также, что S содержит шесть уникальных элементов:a, b, c, d, e а такжеf.

Как мы можем найти все возможные подмножестваS которые содержат каждый из уникальных элементовS ровно один раз?

Результат функции / метода должен быть примерно таким:

[[a,b,c], [d,e,f]];[[a,b,c], [d,f], [e]];[[a,b], [c], [d,e,f]];[[a,b], [c], [d,f], [e]].

Есть ли лучшая практика или какой-либо стандартный способ добиться этого?

Я был бы благодарен за пример с псевдокодом, Ruby или Erlang.

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

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