Generando inteligentemente combinaciones de combinaciones.

Digamos que tengo una clase de 30 estudiantes y quiero generar todas las formas posibles en las que se pueden dividir en grupos de 5 (el orden es irrelevante).

Sé cómo encontrar todas las combinaciones de estudiantes para formar un grupo individualmente (http://www.merriampark.com/comb.htm). Al usar ese iterador y alguna recursión, puedo encontrar PERMUTACIONES de las posibles combinaciones de grupos. Sin embargo, el orden en el que se seleccionan los grupos no es relevante y me gustaría minimizar mi tiempo de ejecución. Entonces, ¿cómo encuentro las COMBINACIONES únicas de los grupos posibles?

El algoritmo anterior usa un orden lexicográfico para evitar la generación de combinaciones duplicadas ... ¿hay alguna manera de que pueda usar esa idea en grupos en lugar de en objetos?

Conozco bien a Ruby y menos a Java / Python. Gracias de antemano por cualquier consejo!

Respuestas a la pregunta(4)

Su respuesta a la pregunta