Jak mogę maksymalnie podzielić zestaw?

Próbuję rozwiązać jeden z problemów projektu Euler. W konsekwencji potrzebuję algorytmu, który pomoże mi znaleźć wszystkie możliwe partycje zestawu, w dowolnej kolejności.

Na przykład, biorąc pod uwagę zestaw2 3 3 5:

2 | 3 3 5
2 | 3 | 3 5
2 | 3 3 | 5
2 | 3 | 3 | 5
2 5 | 3 3

i tak dalej. Prawie każda możliwa kombinacja członków zestawu. Oczywiście przeszukałem sieć, ale nie znalazłem wiele, które byłyby dla mnie przydatne, ponieważ mówię programistą, a nie zaawansowanym matematyką.

Czy ktoś może mi przy tym pomóc? Potrafię czytać prawie każdy język programowania, od języka BASIC po Haskell, więc publikuj w dowolnym języku.

questionAnswers(6)

yourAnswerToTheQuestion