我有一个长字符串,其中每个字符都有指定数量的选项。举个简短的例子,假设我有一个4个字符的字符串。第一个字符可以是数字1-6,第二个字符可以是1-5或a-e,第三个字符只能是a或b,第四个字符可以是0-9或a-z。如何使用Ruby(RoR)实际生成我的字符串的所有可能排列的列表或数组?空格也可用于任何角色。
所以字符串的一个例子可能是:
1aaz
21b0
21 0
1 a1
答案 0 :(得分:4)
这是一个简单的解决方案:
strform = [%w(1 2 3 4 5 6), %w(1 2 3 4 5 a b c d e), %w(a b), %w(0 1 2 3 4 5 6 7 8 9 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)]
strform[0].product(*strform[1..-1]).map(&:join)