获取两个数字之间由ASCII字符生成的字符串的所有可能组合

时间:2019-04-24 06:20:14

标签: javascript algorithm combinations permutation

我需要一个简单的javascript函数,需要3个输入

1-起始ASCII值
2-结束ASCII值
3-字符串长度

该函数将从起始值循环到结束值,直到确定长度。

例如

开始-65
完-67
长度-2

我想要[65,66,67]的ASCII的所有组合(长度2),即[“ A”,“ B”,“ C”]

我希望输出为
AA
AB
AC
BB
BA
BC
CA
CB
CC

1 个答案:

答案 0 :(得分:3)

要生成所有可能的组合,可以使用递归生成器:

  function* combine(start, end, depth, previous = []) {
    if(depth <= 0) {
      yield previous;
      return;
    }

    for(let i = start; i <= end; i++)
      yield* combine(start, end, depth - 1, [...previous, i]);
 }