/// <summary> /// retourne une liste d'arrangements /// </summary> /// contient l'historique des lettres prélevées à chaque niveau /// le lettres à permuter /// <returns></returns> private static List<string> Combinaison( string prefix, string toArrange) { //une lettre ? facile on la retourne en concatenant le prefix if (toArrange.Length == 1) return new List<string>(new string[] { prefix+toArrange}); else // on permute { List<string> ret = new List<string>(); // on prend chaque lettre et on appelle l'arrangement pour les lettres restantes foreach (char c in toArrange) { // la liste de permutations retournées est ajoutée à celles qu'on a déjà. ret.AddRange(Combinaison( prefix + c, toArrange.Replace(c.ToString(),""))); } // on retourne les permutations calculées, elles seront concaténées au niveau au dessus à la lettre prélevée etc... return ret; } }
List<string> Combinaisons=Combinaison( "", "ABCDE");bon ça à l'air de le faire....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question