Javascript 获取一些字符的所有可能组合

Javascript 获取一些字符的所有可能组合,javascript,Javascript,如果a有a,B,C, 我想创建一些长度为4的字符串 因此,输出将是 AAAA AAAB AAAC AABA AABB AABC ABAB .... CCCC 这里有一些评论,所以你可以理解。多亏了 谢谢,但我也需要重复字符的字符串,如BBAA链接重复问题不重复。在链接问题中,只允许唯一的字符组合,在这个问题中,允许相同字符的重复。 function permutate(theWord){ //Array to store the generated words var

如果a有a,B,C, 我想创建一些长度为4的字符串

因此,输出将是

AAAA
AAAB
AAAC
AABA
AABB
AABC
ABAB
....
CCCC

这里有一些评论,所以你可以理解。多亏了


谢谢,但我也需要重复字符的字符串,如BBAA链接重复问题不重复。在链接问题中,只允许唯一的字符组合,在这个问题中,允许相同字符的重复。
function permutate(theWord){

      //Array to store the generated words
      var words = [];

      /**
       * Recursive function to split a string and rearrange 
       * it's characters and then join the results
       */
      function rearrange(str, prefix) {

        var i, singleChar, balanceStr, word;

        //The first time round, prefix will be empty
        prefix = prefix || '';

        //Loop over the str to separate each single character

        for(i = 0; i < str.length; i++) {
          singleChar = str[i];
          balanceStr = str.slice(0, i) + str.slice(i+1);

          //join the prefix with each of the combinations
          word = prefix + singleChar + balanceStr;

          //Inject this word only if it does not exist
          if(words.indexOf(word) < 0) words.push(word);

          //Recursively call this function in case there are balance characters
          if(balanceStr.length > 1) rearrange(balanceStr, prefix + singleChar);

        }

      }

      //kick start recursion
      rearrange(theWord);
      return words;

    }

    var permutatedWord = permutate('goal');
    console.log(permutatedWords);