Выведите все возможные комбинации количества символов «X» с длиной строки «X» (грубая сила)

Я пытаюсь написать генератор словосочетаний, я имею в виду, чтобы напечатать все возможные комбинации "X" количество символов с "X" длина строки,

Прежде всего, я должен сказать, что я видел вопрос в StackOverFlow именно об этой проблеме, у которой есть много ответов генераторов слов, чтобы точно выполнить это (на разных языках), но, пожалуйста, непометить это как дубликат или нене комментируйте мой вопрос только для того, чтобы дать мне ссылкупотому что я'проверили ВСЕ коды C # и VBNET по этому вопросу, и на самом деле ни один из них не работает на 100%, как ожидалось, посмотрите комбинации, которые мне нужны:

Например, если у меня есть «а», «б» и "с" символы, и я хочу сделать все комбинации этих символов в строке "3" длина, то это результат, который я ожидаю:

' Expected result, 27 combinations:
'
' aaa
' aab
' aac
'
' aba
' abb
' abc
'
' aca
' acb
' acc
'
' baa
' bab
' bac
'
' bba
' bbb
' bbc
'
' bca
' bcb
' bcc
'
' caa
' cab
' cac
'
' cba
' cbb
' cbc
'
' cca
' ccb
' ccc

(Род нене имеет значения, я могу разобрать это позже.)

... Но пока что ожидаемый результат, это то, что я мог бы получить:

'a
'aa
'aaa
'b
'bb
'bbb
'c
'cc
'ccc

На этот раз я сделал это на двух языках (Ruby и Batch), но с использованием вложенных Fors (много Fors вместе каждый Для добавления только одной буквы к другому Для вывода), конечно, если я 'Я пытаюсь сделать это в VBNET, чтобы избежать судебного преследования многих из них, и сделать это более эффективным способом.

В приведенном ниже коде вы можете увидеть, как я пытаюсь выделить все комбинации в оперативной памяти (массиве) вместо записи их на физический диск, поэтому я хочу записать этот код с использованием логического метода и с лучшей производительностью, затем Я хочу сохранить все комбинации "в памяти во-первых, и это тоже причина, почему я неЯ не хочу использовать много форсов (производительность).

Это была моя последняя попытка, все объясняется в комментариях:

Public Class Form1

    Dim characters As Char()  ' Default value: {"a","b","c"}
    Dim StringLength As Int64 ' Default value: 3
    Dim TotalCombinations As Int64 ' Default value: 27
    Dim strarray(99999999) As String ' Default size: "99.999.999" million of combinations in memory (I need to confirm this from an expert).

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    Dim index As Int64 = 0

    For column As Int64 = 0 To TotalCombinations - 1 ' For 0 to 26

        For Each character As Char In characters ' Characters = {"a","b","c"}

            If column < index Then
                index = 0 ' I reset index value 'cause... just experimenting things.
                Try
                    strarray(index) += characters(index)
                    RichTextBox1.Text += strarray(index) & ControlChars.NewLine
                Catch
                End Try
            Else
                Try
                    strarray(index) += characters(index)
                    RichTextBox1.Text += strarray(index) & ControlChars.NewLine
                Catch
                End Try
            End If
        Next

        index += 1

    Next

    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        characters = sender.text.ToCharArray ' Result: {"a","b","c"}
        Calculate_Combinations() ' Result: 27
    End Sub

    Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
        StringLength = sender.value ' Result: 3
        Calculate_Combinations() ' Result: 27
    End Sub

    Private Sub Calculate_Combinations()
        Try
            TotalCombinations = ((characters.LongLength * StringLength) * StringLength) ' Result: 27
            Label1.Text = ((characters.LongLength * StringLength) * StringLength) & " number of combinations." ' Result: 27
        Catch : End Try
    End Sub

End Class

Я точная помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос