Intenta entender esto y pruebalo (esta hecho en excel, así que puede que no funcione XD)
En este se usa una lista de caracteres, y length es la cantidad de caracteres objetivo para la "palabra", en el ejemplo son todas las palabras formadas por esos caracteres y 4 caracteres de largo.
Para probar todas las palabras de 1, 2, 3, 4, etc caracteres puedes simplemente meterlo en un bucle, aunque más sencillo es comparar a medida que van apareciendo, de modo de evitar que resulte redundante ya que en el proceso de generar una palabra de 4 letras por ejemplo, el código pasa por A, AA, AAA, AAAA y ahí llega hasta la primera de 4 caracteres, pero como se ve antes ha pasado por las otras 3.
Saludos
Código (vb) [Seleccionar]
Private Sub GenerarDiccionario()
Dim chars As String
Dim charlist() As String
Dim length As Integer
Open app.Path & "\diccionario.txt" For Output As #1
chars = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
charlist = Split(chars, ",")
length = 4
Call Complete("", length, charlist)
Close #1
MsgBox "Proceso Terminado", vbInformation
End Sub
Public Sub Complete(ByVal strin As String, ByVal length As Integer, ByRef charlist() As String)
Dim z As Integer
For z = 0 To UBound(charlist())
word = strin & charlist(z)
If Len(word) = length Then
Print #1, word
Else
Call Complete(word, length, charlist)
End If
Next
End Sub
En este se usa una lista de caracteres, y length es la cantidad de caracteres objetivo para la "palabra", en el ejemplo son todas las palabras formadas por esos caracteres y 4 caracteres de largo.
Para probar todas las palabras de 1, 2, 3, 4, etc caracteres puedes simplemente meterlo en un bucle, aunque más sencillo es comparar a medida que van apareciendo, de modo de evitar que resulte redundante ya que en el proceso de generar una palabra de 4 letras por ejemplo, el código pasa por A, AA, AAA, AAAA y ahí llega hasta la primera de 4 caracteres, pero como se ve antes ha pasado por las otras 3.
Saludos
