欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

请教生成字母加数字

程序员文章站 2022-05-06 14:45:20
...
有26个字母{a-Z}和10个数字{0-9}
如果要生成8位字符的,区分大小写,
这样的排列是(26+26+10)8次方=218340105584896个,这218万亿
但相邻不能有两个或以上相同的如{a1b2cc90,这个字符出现了两次cc}
这样的数据可以用PHP来产生吗?
如果生成单个文本数据应该不太可能,得切割成好多份……


回复讨论(解决方案)

这个意思?

$d = str_split('abcd');print_r(array_map('join', f(4, $d)));function f($n, $d) {  $t = array_chunk($d, 1);  if($n > 2) $t = f($n-1, $d);  foreach($t as $x)    foreach(array_chunk($d, 1) as $y) {      if(end($x) != end($y)) $r[] = array_merge($x, $y);    }  return $r;}
Array(    [0] => abab    [1] => abac    [2] => abad    [3] => abca    [4] => abcb    [5] => abcd    [6] => abda    [7] => abdb    [8] => abdc    [9] => acab    [10] => acac    [11] => acad    [12] => acba    [13] => acbc    [14] => acbd    [15] => acda    [16] => acdb    [17] => acdc    [18] => adab    [19] => adac    [20] => adad    [21] => adba    [22] => adbc    [23] => adbd    [24] => adca    [25] => adcb    [26] => adcd    [27] => baba    [28] => babc    [29] => babd    [30] => baca    [31] => bacb    [32] => bacd    [33] => bada    [34] => badb    [35] => badc    [36] => bcab    [37] => bcac    [38] => bcad    [39] => bcba    [40] => bcbc    [41] => bcbd    [42] => bcda    [43] => bcdb    [44] => bcdc    [45] => bdab    [46] => bdac    [47] => bdad    [48] => bdba    [49] => bdbc    [50] => bdbd    [51] => bdca    [52] => bdcb    [53] => bdcd    [54] => caba    [55] => cabc    [56] => cabd    [57] => caca    [58] => cacb    [59] => cacd    [60] => cada    [61] => cadb    [62] => cadc    [63] => cbab    [64] => cbac    [65] => cbad    [66] => cbca    [67] => cbcb    [68] => cbcd    [69] => cbda    [70] => cbdb    [71] => cbdc    [72] => cdab    [73] => cdac    [74] => cdad    [75] => cdba    [76] => cdbc    [77] => cdbd    [78] => cdca    [79] => cdcb    [80] => cdcd    [81] => daba    [82] => dabc    [83] => dabd    [84] => daca    [85] => dacb    [86] => dacd    [87] => dada    [88] => dadb    [89] => dadc    [90] => dbab    [91] => dbac    [92] => dbad    [93] => dbca    [94] => dbcb    [95] => dbcd    [96] => dbda    [97] => dbdb    [98] => dbdc    [99] => dcab    [100] => dcac    [101] => dcad    [102] => dcba    [103] => dcbc    [104] => dcbd    [105] => dcda    [106] => dcdb    [107] => dcdc)