任意の文字数の英文字列を生成する

JavaScriptでAAA、AAB、AAC…ZZZという英文字列をもれなく生成する方法です。
コードを下に示します。
「enumerate(3)」としているところで文字数を指定します。この場合、3文字です。4文字で相当時間がかかりました。5文字だと動かないと思い、試していません。

var arrs;
arrs = enumerate(3);
document.write(arrs.join("<br>"));
function enumerate(len) {
  var list, list_length, arr, arr_length, i, j, result;
  list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  list_length = list.length;
  result = [];
  if(len == 1) {
    for(i = 0; i < list_length; i++) {
      result.push(list.substr(i, 1));
    }
  } else {
    arr = enumerate(len - 1);
    arr_length = arr.length;
    for(i = 0; i < list_length; i++) {
      for(j = 0; j < arr_length; j++) {
        result.push(list.substr(i, 1) + arr[j]);
      }
    }
  }
  return result;
}

コメント

タイトルとURLをコピーしました