private List <string> GetAllPermutations(CounterSet counterSet) { var res = new List <String>(); do { res.Add(counterSet.ToString()); counterSet.Inc(); } while (!counterSet.IsAtMax()); res.Add(counterSet.ToString()); return(res); }