void Main()
{
var charString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890!@#$%^&*()_-+=}{][?/><,.";
var charList = charString.ToCharArray().Select(c => c.ToString()).AsEnumerable();
IEnumerable<IEnumerable<string>> result = GetPermutations(charList, 8);
}
static IEnumerable<IEnumerable<T>> GetPermutations<T>(IEnumerable<T> list, int length)
{
if (length == 1) return list.Select(t => new T[] { t });
return GetPermutations(list, length - 1)
.SelectMany(t => list.Where(e => !t.Contains(e)),
(t1, t2) => t1.Concat(new T[] { t2 }));
}
Comments