divide 120 students into 12 groups for 6 workshops without repeating I have 120 students, and I'll give them 6 workshops. For each workshop, I'll divide the body of 120 students into 12 groups (so, 10 students per group).
The problem is that if some students A and B were together in group $X$ in workshop $n$, I don't want them to be together in any other workshops.
In other words, each student should meet different students for each workshop.
Is there an algorithm to solve this problem?
Note: I have given each student an ID from 1-120. 
 A: I have an algorithm for $N$ groups consisting of $N$ students each which can generate partitions for $N+1$ workshops. I'm pretty sure that this will work provided than $N$ is a prime number, which is not bad for your case because $N=11$ gives you something quite close to what you are looking for.
organize the $N^2$ students by associating each one with an element of an $N\times N$ matrix $M$ . It will be convenient to have the indices start at $0$ instead of $1$ , so the element $M_{4,7}$ refers to the $8^{th}$ student in the  $5^{th}$ group.
Use the matrix $M$ to identify the students and to populate your first workshop.
You can populate your second workshop by forming the transpose of $M$ . name this matrix $D^{(0)}$
$$ D^{(0)}_{i,j} = M_{j,i}$$
Now generate the next workshop by keeping the $j=0$ ranked students in the same group numbers they were in but shifting the group numbers of the the rest of the students by $j$ units .You need to use modular arithmetic when you do the shifting.
so 
$$ D^{(1)}_{i,j} = D^{(0)}_{p,j}  = M_{j,p}$$
where $p=(i+j) \mod N$
generate the next workshop by performing the shifts again
$$ D^{(k+1)}_{i,j} = D^{(k)}_{p,j}  $$
where $p=(i+j) \mod N$
So the general formula for the $k^{th}$ workshop is 
$$ D^{(k)}_{i,j} = M_{j,p}$$
where $p=(i+j*k) \mod N$
If $N$ is prime, this should generate non-repeating groups for $N+1$ workshops, $M$ in addition to $ D^{(k)}$ where $k$ ranges from $0$ to $N-1$.
A: This problem is in the domain of the Social Golfer Problem or Social Golfer Problem.  There isn't a set algorithm for solving these.
