小编Jay*_*Jay的帖子

当数组的数量和每个数组的长度未知时,生成字符组合的所有排列

我不确定如何以简洁的方式提出我的问题,所以我将从示例开始并从那里扩展.我正在使用VBA,但我认为这个问题是非语言特定的,只需要一个可以提供伪代码框架的聪明头脑.在此先感谢您的帮助!

示例:我有3个字符数组,如此:

Arr_1 = [X,Y,Z] 
Arr_2 = [A,B]
Arr_3 = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我想生成所有可能的字符数组排列,如下所示:

XA1
XA2
XA3
XA4
XB1
XB2
XB3
XB4
YA1
YA2
.
.
.
ZB3
ZB4
Run Code Online (Sandbox Code Playgroud)

这可以使用3 while循环或for循环轻松解决.我的问题是,如果数组的数量未知且每个数组的长度未知,我该如何解决这个问题?

所以作为4个字符数组的例子:

Arr_1 = [X,Y,Z]
Arr_2 = [A,B]
Arr_3 = [1,2,3,4]
Arr_4 = [a,b]
Run Code Online (Sandbox Code Playgroud)

我需要生成:

XA1a
XA1b
XA2a
XA2b
XA3a
XA3b
XA4a
XA4b
.
.
.
ZB4a
ZB4b  
Run Code Online (Sandbox Code Playgroud)

所以广义的例子是:

Arr_1 = [...]
Arr_2 = [...]
Arr_3 = [...]
.
.
.
Arr_x = [...]
Run Code Online (Sandbox Code Playgroud)

有没有办法构造一个函数,它将生成一个未知数量的循环并循环遍历每个数组的长度以生成排列?或者也许有更好的方法来思考这个问题?

感谢大家!

arrays computer-science arraylist permutation multidimensional-array

8
推荐指数
2
解决办法
5932
查看次数