Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Sep 9th, 2010 | Syntax: ActionScript 3 | Size: 1.06 KB | Hits: 46 | Expires: Never
Copy text to clipboard
  1.                 private function giveCombos(str:String):Array
  2.                 {
  3.                         var letters:Array = new Array();
  4.                        
  5.                         //list all letters
  6.                         for (var i:int = 0; i < str.length; i++)
  7.                         {
  8.                                 var subStr:String = str.charAt(i);
  9.                                 if (letters.indexOf(subStr) == -1) letters.push(subStr);
  10.                         }
  11.                         return createCombos("", letters);
  12.                 }
  13.                
  14.                 private function createCombos(strPart:String, leftLetters:Array):Array
  15.                 {
  16.                         //aborting the recursion
  17.                         if (leftLetters.length == 1) return new Array(String(strPart + leftLetters));
  18.                        
  19.                         //copy the old array, so it's not messed up.
  20.                         var letters:Array = leftLetters.slice();
  21.                        
  22.                         //new Array to be returned
  23.                         var retAr:Array = new Array();
  24.                        
  25.                         //for every String...
  26.                         for (var i:int = 0; i < letters.length; i++)
  27.                         {
  28.                                 //take one remaining letter off the array of remaining letters
  29.                                 var newArray:Array = letters.slice();
  30.                                 var newStr:String = strPart + newArray.splice(i,1);
  31.                                 retAr.push(newStr);
  32.                                
  33.                                 //and do it again -> recursion!
  34.                                 retAr.push(createCombos(newStr, newArray));
  35.                         }
  36.                         return retAr;
  37.                 }