Mirar, he simplificado un poco el code con bucles en vez de Goto y con un array
Public Sub BruteForce()
'\\Declaro variables
Dim D(3) As Integer, x As Integer
For x = 0 To 3: D(x) = 97: Next
'\\Abro archivo de texto
Open App.Path & "\dic.txt" For Output As #1
'\\Un digito
While Not D(0) = 123
Print #1, Chr(D(0))
D(0) = D(0) + 1
Wend
D(0) = 97
MsgBox "Combinaciones con un dígito completadas!", vbInformation
'\\Dos digitos
While Not D(0) = 123
If D(1) = 123 Then
D(1) = 97
D(0) = D(0) + 1
End If
If Not D(0) = 123 Then Print #1, Chr(D(0)) & Chr(D(1))
D(1) = D(1) + 1
Wend
D(0) = 97: D(1) = 97
MsgBox "Combinaciones con dos dígitos completadas!", vbInformation
'\\Tres digitos
While Not D(0) = 123
If D(1) = 122 And D(2) = 123 Then
D(2) = 97: D(3) = 97
D(0) = D(0) + 1
ElseIf D(2) = 123 Then
D(1) = D(1) + 1
D(2) = 97
End If
If Not D(0) = 123 Then Print #1, Chr(D(0)) & Chr(D(1)) & Chr(D(2))
D(2) = D(2) + 1
Wend
For x = 0 To 2: D(x) = 97: Next
MsgBox "Combinaciones con tres dígitos completadas!", vbInformation
'\\Cuatro digitos
While Not D(0) = 123
If D(1) = 122 And D(2) = 122 And D(3) = 123 Then
For x = 1 To 3: D(x) = 97: Next
D(0) = D(0) + 1
ElseIf D(2) = 122 And D(3) = 123 Then
D(2) = 97: D(3) = 97
D(1) = D(1) + 1
ElseIf D(3) = 123 Then
D(3) = 97
D(2) = D(2) + 1
End If
If Not D(0) = 123 Then Print #1, Chr(D(0)) & Chr(D(1)) & Chr(D(2)) & Chr(D(3))
D(3) = D(3) + 1
Wend
For x = 0 To 3: D(x) = 97: Next
MsgBox "Combinaciones con cuatro dígitos completadas!", vbInformation
'\\Finalizamos
MsgBox "Fin", vbOKOnly
Close #1
End
End Sub
Ya se que no es la forma profesionl de hacerlo, pero os pido vuestra opinion