在JavaScript中以给定长度的重复生成所有可能的组合

在JavaScript中以给定长度的重复生成所有可能的组合,javascript,combinations,combinatorics,Javascript,Combinations,Combinatorics,我需要在JavaScript中生成给定长度(字母可以重复)的所有可能组合。可以用ruby编写的东西,在('a'*4..'z'*4)JavaScript中没有这样的功能语法。使用新的列表理解,您可能会做这样的事情,但它们并没有得到广泛支持。因此,您需要在循环中手动创建字符串: var from = 97, to = from + 26, rep = 4, callback = function(str) { … }; (function recurse(arr, len)

我需要在JavaScript中生成给定长度(字母可以重复)的所有可能组合。可以用ruby编写的东西,在('a'*4..'z'*4)JavaScript中没有这样的功能语法。使用新的列表理解,您可能会做这样的事情,但它们并没有得到广泛支持。因此,您需要在循环中手动创建字符串:

var from = 97,
    to = from + 26,
    rep = 4,
    callback = function(str) { … };
(function recurse(arr, len) {
    if (len < rep)
        for (var i=from; i<to; i++) {
            arr[len] = i;
            recurse(arr, len+1);
        }
    else
        callback( String.fromCharCode.apply(null, arr) );

})([], 0);
var from=97,
to=从+26开始,
rep=4,
回调=函数(str){…};
(函数递归(arr,len){
if(len对于(var i=来自;i@Bergi我尝试搜索“JavaScript中的组合”,并尝试对其代码进行一些修改,但没有成功。