It appears you do know how to write the code for for a three-team three-game series, but you answered my question ... do you want to make your code flexible ... i.e., the number of teams can vary ? ... with "no." That's confusing.
If you want to make the number of teams variable, you need to implement a combination-creating solution, and that will
probably be recursive.
CodeProject has seven articles on creating Permutations and Combinations in C#: [
^]. I predict you will find usable code in those articles.
Here's an example of using the code in the first CodeProject article linked-to above, "Permutations, Combinations, and Variations using C# Generics" by Adrian Atkinson, to create the possible variations you describe:
using Facet.Combinatorics;
private List<string> outcomes = new List<string>{"Win", "Tie", "Lose"};
private List<List<string>> possibleOutcomes = new List<List<string>>();
private void button2_Click(object sender, EventArgs e)
{
Variations<string> games = new Variations<string>(outcomes, 3, GenerateOption.WithRepetition);
possibleOutcomes = games.Select(lst => lst.ToList()).ToList();
foreach (var game in possibleOutcomes)
{
Console.WriteLine(String.Format("{{{0} {1} {2}}}", game[0], game[1], game[2]));
}
}
Also, I suggest you review the discussion and C# permutation-building strategies here: [
^], to focus on what type of permutation-builder you want to implement, and get some ideas of the computational cost/speed/memory-use.