Yes, it’s a labeling formula. You start by creating the 12 slots for team members, grouping them by team:
Team 1: (_, _, _, _), Team 2: (_, _, _, _), Team 3: (_, _, _, _)
There are 12 people who can go in the first slot (member 1, team 1); for each of those there are 11 people who can go in the second slot (member 2, team 1); for each of those there are 10 people who can fill the third slot (member 3, team 1); and so on. So, if we cared about who was chosen first, who was chosen second, and so on, there would be:
12! = 12 × 11 × . . . × 2 × 1 = 479,001,600
ways to choose the teams.
However, we don’t care who was chosen when: if team 1 were (Bob, Mary, George, Sophie), or (Sophie, Mary, Bob, George), it’s all the same to us. There are 4! = 4 × 3 × 2 × 1 = 24 ways we can arrange the four members of team 1, so our number is too big by a factor of 4!; we need to divide by 4! to eliminate the duplications.
Similarly, we don’t care about the order in which team 2’s members were chosen, and we don’t care about the order in which team 3’s members were chosen; there are four members for each of these teams, so we need to divide by 4! for team 2 and divide by 4! for team 3. Thus, our formula is:
12! / (4!×4!×4!) = 34,650.
By the way, unless there is something special about which team is called Team 1, which is called Team 2, and which is called Team 3 (and there probably isn’t), this answer is _ wrong _. Just as we eliminated the order of the members of each team, so we should also eliminate the order of the teams; we should further divide by 3! = 3 × 2 × 1 = 6 to arrive at the correct number:
12! / (4!×4!×4!×3!) = 5,775.
It’s quite annoying when these question writers try to act so clever in their scenarios, then miss subtleties such as this.