gerando inteligentemente combinações de combinações

Digamos que eu tenha uma turma de 30 alunos e que queira gerar todas as formas possíveis em que eles podem ser particionados em grupos de 5 (a ordem é irrelevante).

Eu sei como encontrar todas as combinações de estudantes para formar um grupo individualmente (http://www.merriampark.com/comb.htm). Usando esse iterador e alguma recursão, posso encontrar PERMUTAÇÕES das possíveis combinações de grupo. No entanto, a ordem em que os grupos são selecionados não é relevante e eu gostaria de minimizar o tempo de execução. Então, como encontro as COMBINAÇÕES exclusivas dos grupos possíveis?

O algoritmo acima usa a ordenação lexicográfica para evitar gerar combinações duplicadas ... existe uma maneira de usar essa ideia em grupos em vez de em objetos?

Eu conheço muito bem o Ruby e o Java / Python. Agradecemos antecipadamente por qualquer conselho!

questionAnswers(4)

yourAnswerToTheQuestion