所有可能的组合字符串 - 速度

C_K*_*C_K -3 jquery combinations for-loop

我创建了一个jquery脚本,它生成一个字符串的所有可能组合,其中涉及数字和小写字母.我只想要10个字符长的字符串,所以我扔了一个控制它的if语句.

对于那些感兴趣的人,这是脚本:

$(document).ready(function(){

    var parts = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'];
    var url = "";

for (var a = 0; a < parts.length; a++) {
    for (var b = 0; b < parts.length; b++) {
        for (var c = 0; c < parts.length; c++) {
            for (var d = c + 1; d < parts.length; d++) {
                for (var e = d + 1; e < parts.length; e++) {
                    for (var f = e + 1; f < parts.length; f++) {
                        for (var g = f + 1; g < parts.length; g++) {
                            for (var h = g + 1; h < parts.length; h++) {
                                for (var i = h + 1; i < parts.length; i++) {
                                    for (var j = i + 1; j < parts.length; j++) {
                                            url = parts[a]+parts[b]+parts[c]+parts[d]+parts[e]+parts[f]+parts[g]+parts[h]+parts[i]+parts[j];
                                            if (url.length === 10) {
                                                $("#URLs").append(url+', ');
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

});
Run Code Online (Sandbox Code Playgroud)

每个角色都有一个for循环.如果你只想要3个字符串长的字符串,只使用3个嵌套的字符串.

它可能不够优雅,但它有效.我的问题是速度/崩溃.

当然,试图通过浏览器运行它是一个坏主意.什么是更好的程序/语言/设置速度?据我所知,无论如何我都可能受到CPU能力的限制,而且强制执行总是很慢.

如果有一项服务可以做同样的事情,我想这也会有用.

Mar*_*arc 5

你不会有一个存储输出的地方.你说的是3.656e + 15种组合,所以你将它附加到DOM元素的方法是行不通的.

即使您使用过C/C++或Java,您仍然在谈论可能对您的存储容量不可行的事情.如果您只是动态提交请求(与存储它们相比),那么提交许多请求将会很长时间.我认为你在这里想要完成的任何事情(阴暗?)都不会成功.