26个字母,从a开始排下去:a,b,c......x,y,z 完毕,
再排二位:aa,ab,ac,ad........ax,ay,az 完毕
接着还是二位:ba,bb,bc,bd.........bx,by,bz 完毕
接着还是二位:ca,cb,cc,cd.........cx,cy,cz 完毕
..........
..........
..........
接着排三位:aaa,aab,aac,aad..........aax,aay,aaz 完毕
接着还是三位:aba,abb,abc,abd..........abx,aby,abz 完毕
接着还是三位:aca,acb,abc,acd..........acx,acy,acz 完毕
..........
..........
..........
接着还是三位:baa,bab,bac,bad..........bax,bay,baz 完毕
总之就是吧26个字母不重复的排下去,从少位排起实在想不出来,请高手指点....
再排二位:aa,ab,ac,ad........ax,ay,az 完毕
接着还是二位:ba,bb,bc,bd.........bx,by,bz 完毕
接着还是二位:ca,cb,cc,cd.........cx,cy,cz 完毕
..........
..........
..........
接着排三位:aaa,aab,aac,aad..........aax,aay,aaz 完毕
接着还是三位:aba,abb,abc,abd..........abx,aby,abz 完毕
接着还是三位:aca,acb,abc,acd..........acx,acy,acz 完毕
..........
..........
..........
接着还是三位:baa,bab,bac,bad..........bax,bay,baz 完毕
总之就是吧26个字母不重复的排下去,从少位排起实在想不出来,请高手指点....
假如集合A{a~z},
for each CHAR1 in A
for each CHAR2 in A
if CHAR1<>CHAR2 then
debug.print CHAR1 ,CHAR2
next
next
这样就可以输出集合中所有的不同的2个元素的组合,其他3个,4个同理,不过要多费点时间。
Dim i%, j%, mystr$
Dim arr(25)
Dim mycon As New Collection
j = 97
For k = 0 To UBound(arr)
mystr = Chr(j)
arr(k) = mystr
j = j + 1
Next
For i = 0 To UBound(arr)
mycon.Add arr(i)
NextFor Each char1 In mycon
For Each char2 In mycon
Text1.Text = Text1.Text & char1 & char2 & Space$(2)
DoEvents
Next
Next
End Sub
新建一个工程,一个command1,一个text1(设为多行,有竖滚动条)。把以上代码粘贴。
以上代码可以在文本框输出a-z中2个字母的组合,4个,5个组合就别这样搞了,要很长时间的,建议直接输出到文件。
Dim S As Integer, E As Integer, N As Integer, count As Integer
S = Asc("a")
E = Asc("f") '此处可变为asc("z"),但是,这样会花很时间的
N = E - S
Dim i As Integer, j As Integer
Dim result() As String, tmp As String
ReDim result(N)
Dim Clt As New CollectionFor i = 0 To N
result(i) = Chr(i + S)
Clt.Add Chr(i + S)
List1.AddItem result(i)
Next i
count = 2
Do
N = Clt.count
For j = 1 To N
tmp = Clt.Item(j)
For i = 0 To E - S
DoEvents
Clt.Add tmp & result(i)
List1.AddItem tmp & result(i)
Next i
Next j
count = count + 1
Loop While count <= E - S + 1End Sub