List<List<String>> list = new List<List<string>>() { new List<string>() { "a", "b", "c" }, new List<string>() { "A", "B" }, new List<string>() { "1", "2" } }; var array = list.Aggregate((m, n) => m.SelectMany(t1 => n.Select(t2 => t1 + t2).ToList()).ToList()).ToList();