黔南是贵州哪个市:请教 VB 全排列 急!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 13:36:20
请教从1,2,3,4,5......至n个字符全排列的源代码.
例如:a,b,c
可以分解成a,b,c,aa,ab,ac,ba,bb,bc,ca,cb,cc,abc
那么n个数字怎么排列,如果用for循环哈,启不是要用n个(如果有200个数)?
急!!!急!!!急!!!
例子中应该还有aaa,aab,aac,aba,abb,aca,acb,acc,baa,bab,bac,bba,bbb,bbc,bca,bcb,bcc,caa,cab,cac,cba,cbb,cbc,cca,ccb,ccc........
可以重复,最多10位。

Dim arrStr() As String * 1

Private Sub PrintString(myStr As String, maxLength As Long)
Dim i As Long
Dim tmpStr As String

If Len(myStr) >= maxLength Then Exit Sub

For i = 1 To maxLength
tmpStr = myStr & arrStr(i)

List1.AddItem tmpStr

'用list来显示结果效果比较好,或者也可以改成:
'Print tmpStr
'或者用数组才储存结果

Call PrintString(tmpStr, maxLength)
Next i

End Sub

Private Sub Command1_Click()
ReDim arrStr(1 To 3)
arrStr(1) = "a"
arrStr(2) = "b"
arrStr(3) = "c"

PrintString "", 3
End Sub