Ruby输出每个可能的字符(A-Z,a-z,0-9),长度为8到16个字符

时间:2016-04-04 22:16:32

标签: arrays ruby combinations permutation

如何使用字符AZ(大写和小写)和数字0-9输出每个可能的字符组合(8到16之间),同时还使用一些特殊字符,如下划线和美元符号。

1 个答案:

答案 0 :(得分:1)

正如@tadman所说,这不会在我们太阳系的生命周期内完成,但从理论上讲,你可以像这样完成它:

chars = [*:A..:Z, *:a..:z, *0..9, ?$, ?_]

(8..16).each do |n|
  chars.permutation(n) do |a|
    puts a.join
  end
end

如果要在开始之前计算输出行数:

(8..16).reduce(0) {|sum,n| sum + chars.permutation(n).size }

注意:有四种Array方法可以获得"组合"字符:permutationcombinationrepeated_permutationrepeated_combination。您应该查看文档或对每个文档进行实验,以确保您获得正确的"组合。"