I have a list:
list = ['john','jeff','george','peter']
I want to create following output:
[
[('john','jeff'),('george','peter')],
[('john','george'),('jeff','peter')],
[('john','peter'),('jeff','george')],
[('george','peter'),('john','jeff')],
[('jeff','peter'),('john','george')],
[('jeff','george'),('john','peter')]
]
Generally I want to create all player combinations for 2 vs 2 game. Inside one output line, one name can show only once (one player can play in only one team at a time). Game allows to play rematch, so every pair of tuples should be repeated, but in different order (different order of tuples, no different order of items in tuple).
When the list has more than 4 elements, for example 5, the output should be like that:
list = ['john','jeff','george','peter','simon']
[
[('john','jeff'),('george','peter')],
[('john','george'),('jeff','peter')],
[('john','george'),('jeff','simon')],
[('john','peter'),('jeff','george')],
[('john','simon'),('jeff','george')],
[('george','peter'),('john','jeff')],
[('george','simon'),('john','jeff')],
[('jeff','peter'),('john','george')],
[('jeff','george'),('john','peter')],
[('jeff','george'),('john','peter')]
...
]
So there is always 4 players in one game. Rest of players just wait and are not involved in particular game.