title: Evaluating all tournament scenarios
body: <p>I have an object <code>Tournament</code> that has a list of matches and each has the probability that player1 or player2 wins stored in a <code>Map&lt;Player, Float&gt;</code>. <br>
  I iterate on the list of matches taking element <code>i</code> and <code>i + 1</code> to create a new match using their winners. The winner is chosen this way: if p1 (or p2) wins with a probability above a certain threshold, I pick it, otherwise I have to branch and evaluate both cases (case 1: p1 wins - case 2: p2 wins).<br>
  My goal is to create all possible scenarios and evaluate all possible tournament winners.<br>
  I am able to do it without branching (just recursively evaluate all match winners, until there is only the final match), but if I want all scenarios I don't really know how to do it.<br>
  Any ideas? Which data structure should I use? Is it possible to do something like C <code>fork</code> and use it?</p>