从字符列表生成单词

时间:2019-11-14 09:05:19

标签: perl

我问this question,但我意识到我在错误地提出了这个问题,尽管@Zdim提供的答案恰好是我问的问题:所以现在我需要稍微改变一下这个问题。

my $str = 'aaaa';
print $str++, $/ while $str le 'dddd';

例如,上面的代码执行从aaaadddd的每个组合,例如:

aaaa
aaab
aaac
...
daaa
...
dddd

但是,我们需要生成给定字符集的全部的可能组合。它们是数字,特殊字符还是字母字符。因此,如果我告诉脚本最小2,最大4个字母词,则输入字符串:

abcdefG1234%#@

然后它将生成:

aa
aaa
aaaa
bb
aaab
bbbb
@@@@
abc@
ab@1
...

因此,它应该使用每个字符并创建从最小2个字符到最大4个字符的每种可能的组合。

因此,即使我提供了整个字母数字和特殊字符,它也会在24字符范围内创建每个可能的单词或字符串。

如果我们以这个glob示例为例,它很接近,但是它将只处理所有4组,而不是2,然后依次是3和{{1 }}

4

2 个答案:

答案 0 :(得分:5)

for my $i (2..4) {
   say while glob '{A,B,C,D,#,@,a,d,e,f}' x $i;
}

答案 1 :(得分:5)

一种方法是使用链接的问题和答案的一些扩展。从给定的字符串中生成将要采样的ASCII码序列

ID      nama   jabatan    gaji_Pokok   jenis_tunjangan   besar_tunjangan

10010   Muhammad Hayyi  Pimpinan    1425000 jabatan pimpinan    140000

10010   Muhammad Hayyi  Pimpinan    1425000 kesehatan pimpinan  150000

10010   Muhammad Hayyi  Pimpinan    1425000 beras pimpinan  250000

10010   Muhammad Hayyi  Pimpinan    1425000 Tunjangan Prestasi pimpinan 2425000

10010   Muhammad Hayyi  Pimpinan    1425000 Tunjangan Sirkulasi pimpinan    1711000

10010   Muhammad Hayyi  Pimpinan    1425000 Tunjangan Kepulangan pimpinan   290000

10010   Muhammad Hayyi  Pimpinan    1425000 Tunjangan DO pimpinan   4600000

现在有了该列表,请从链接页面运行长度为2到4的序列的代码。