using System;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
var dict = new Dictionary<String, List<String>>() {
{"1",new List<String>(){"a", "b"}},
{"2",new List<String>(){"c", "d", "e"}},
{"3",new List<String>(){"f", "g", "h"}},
};
var result = from kv in dict
from val1 in kv.Value
from val2 in kv.Value
select string.Format("{0}{1}", val1, val2);
int combiCount = 0;
foreach (var combi in result)
Console.WriteLine(++combiCount +". " + combi);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CnZhciBkaWN0ID0gbmV3IERpY3Rpb25hcnk8U3RyaW5nLCBMaXN0PFN0cmluZz4+KCkgeyAKICAgIHsiMSIsbmV3IExpc3Q8U3RyaW5nPigpeyJhIiwgImIifX0sCiAgICB7IjIiLG5ldyBMaXN0PFN0cmluZz4oKXsiYyIsICJkIiwgImUifX0sCiAgICB7IjMiLG5ldyBMaXN0PFN0cmluZz4oKXsiZiIsICJnIiwgImgifX0sCn07CnZhciByZXN1bHQgPSBmcm9tIGt2IGluIGRpY3QKICAgICAgICAgICAgIGZyb20gdmFsMSBpbiBrdi5WYWx1ZQogICAgICAgICAgICAgZnJvbSB2YWwyIGluIGt2LlZhbHVlCiAgICAgICAgICAgICBzZWxlY3Qgc3RyaW5nLkZvcm1hdCgiezB9ezF9IiwgdmFsMSwgdmFsMik7CgppbnQgY29tYmlDb3VudCA9IDA7CmZvcmVhY2ggKHZhciBjb21iaSBpbiByZXN1bHQpCiAgICBDb25zb2xlLldyaXRlTGluZSgrK2NvbWJpQ291bnQgKyIuICIgKyBjb21iaSk7CgkJCgl9Cn0=