title: Team matchmaking algorithm based on ELO
body: <p>I'm looking for a very simple way to put up 2 teams out of unspecified(but known) amount of players. So its not actually a standard matchmaking since it only creates one match out of the whole pool of registered players for the specific match. I do have pretty much only single variable and it is the ELO score for each player, which means it's the only available option to base calculations on.</p>
  
  <p>What I thought of is just simply go through every possible combination of a players(6 in each team) and the lowest difference between the average ELO of teams is the final rosters that get created. I've tested this option and it gives me more than 17mil calculations for 18 registered players(the amount of players shouldnt be more than 24 usually) so its doable but its definitely the MOST unoptimized way to do that.</p>
  
  <p>So I decided to ask a question in here, maybe you can help me with that in some way. Any ideas what simple algos I can use or the ways of optimizing something in a straight up comparisons of all possible combinations. </p>
  
  <p>If you want to provide any code examples I can read any code language(almost), so it doesnt really matter.</p>
  
  <p>UPD. basically the input is gonna be a list[] of player objects that contain player "id" and "elo", the output should be 2 team lists team1[] and team2[] containing player objects. The average ELO of both teams should be as close as possible.</p>