2014-08-19 4 views
0

Я пытаюсь преобразовать эту функцию Python, которая использует itertools библиотеку, в VB.Net:Генерация всех возможных перестановок для заданной длины и набор символов

permutations = itertools.product('ab', repeat=3) 

выше функция возвращает все перестановки:

[['a','a','a'], 
['a','a','b'], 
['a','b','a'], 
['a','b','b'], 
['b','a','a'], 
['b','a','b'], 
['b','b','a'], 
['b','b','b']] 

Есть ли хороший чистый способ сделать это в VB.Net?

ответ

1

Ответ на ваш вопрос, если я не ошибаюсь. - https://stackoverflow.com/a/21090635/2319909

+0

я ищу какую-то библиотеку или один лайнер нативной функции или может быть что-то .. LINQ просто – razzak

+0

OK. .. Это сделает это, хотя .. Permutation.Create ({"a" c, "b" c, "c" c}, sort: = True) недостаточно для вас? –

+0

Добавьте класс, который предоставил чувак, затем укажите его. –

0

Я в конечном итоге преобразование функции питона itertools.product в vb.net:

Function Permute (chars As List (Of Char), len As Integer) As List (Of List (Of Char)) 
    Dim pools As New List (Of List (Of Char)) 
    Dim result As New List (Of List (Of Char)) From {New List (Of Char)} 
    For i = 0 To len - 1 
     pools.Add (chars) 
    Next 
    For Each pool As List (Of Char) In pools 
     Dim result2 As New List (Of List (Of Char)) 
     For Each x In result 
      For Each y In pool 
       Dim temp As New List (Of Char)(x) 
       temp.Add (y) 
       result2.Add (temp) 
      Next 
     Next 
     result = New List (Of List (Of Char))(result2) 
    Next 
    Return result 
End Function 
Смежные вопросы