var comb = function (arr) {
var ret = [];
solve(arr, 0, arr.length, "", ret);
return ret;
function solve(arr, i, l, str, ret) {
var curr = arr[i];
for (var j = 0, m = curr.length; j < m; ++j) {
if (i + 1 < l) {
solve(arr, i + 1, l, str + curr[j], ret);
} else {
ret.push(str + curr[j]);
}
}
}
};
comb(arr1); // ["147", "148", "149", "140", "157", "158", "159", "150", "167", "168", "169", "160", "247", "248", "249", "240", "257", "258", "259", "250", "267", "268", "269", "260", "347", "348", "349", "340", "357", "358", "359", "350", "367", "368", "369", "360"]
简单的递归枚举就行了