Untitled
By: a guest | Sep 9th, 2010 | Syntax:
ActionScript 3 | Size: 1.06 KB | Hits: 46 | Expires: Never
private function giveCombos(str:String):Array
{
var letters:Array = new Array();
//list all letters
for (var i:int = 0; i < str.length; i++)
{
var subStr:String = str.charAt(i);
if (letters.indexOf(subStr) == -1) letters.push(subStr);
}
return createCombos("", letters);
}
private function createCombos(strPart:String, leftLetters:Array):Array
{
//aborting the recursion
if (leftLetters.length == 1) return new Array(String(strPart + leftLetters));
//copy the old array, so it's not messed up.
var letters:Array = leftLetters.slice();
//new Array to be returned
var retAr:Array = new Array();
//for every String...
for (var i:int = 0; i < letters.length; i++)
{
//take one remaining letter off the array of remaining letters
var newArray:Array = letters.slice();
var newStr:String = strPart + newArray.splice(i,1);
retAr.push(newStr);
//and do it again -> recursion!
retAr.push(createCombos(newStr, newArray));
}
return retAr;
}