Generar todos los subconjuntos "únicos" de un conjunto (no un conjunto de potencia)
Digamos que tenemos un SetS
que contiene algunos subconjuntos:
- [a,b,c]
- [a,b]
- [c]
- [d,e,f]
- [d,f]
- [e]
Digamos también que S contiene seis elementos únicos:a, b, c, d, e
yf
.
¿Cómo podemos encontrar todos los subconjuntos posibles deS
que contienen cada uno de los elementos únicos deS
¿Exactamente una vez
El resultado de la función / método debería ser algo así:
[[a,b,c], [d,e,f]];
[[a,b,c], [d,f], [e]];
[[a,b], [c], [d,e,f]];
[[a,b], [c], [d,f], [e]].
Existe alguna mejor práctica o alguna forma estándar de lograrlo?
Agradecería un ejemplo de pseudocódigo, Ruby o Erlang.