// (red, red) // (red, green) // (red, blue) // (green, red) // (green, green) // (green, blue) // (blue, red) // (blue, green) // (blue, blue) using System; using System.Linq; public static class Program { private static readonly string[] Fruits = { "red", "green", "blue"}; public static void Main() { var k = 2; var n = 3; var arr = new int[k]; while (true) { Console.WriteLine($"({string.Join(", ", arr.Select(e => Fruits[e]))})"); var index = k - 1; while (index >= 0 && arr[index] == n - 1) { index--; } if (index < 0) { break; } arr[index]++; for (int i = index + 1; i < k; i++) { arr[i] = 0; } } } }