Как найти перестановки строки?

Как я могу найти комбинации конкретной строки....

ABCD - "", A, B, C, AB, AC, AD,AD,BC,BD,CD,ABC,ACD,ABD,ABCD,...

С языком программирования....

Спасибо..

2 ответа

Решение

Вставьте нужный алфавит в набор и вызовите findSubset .

Set findSubsets(Set A)
{
     if A is the empty set
            return the empty set

     // The first element of our set is A[0]
     // (A - A[0] is the set A without the first element)
     Set B := findSubsets(A - A[0])

     // Set B is now all the subsets of A without the first element
     // We now find all the subsets of A containing the first element by finding
     // tacking on the first element to the sets inside B
     Set C = {}
     For each set D in B
            add {A[0], D} to C

    return B added to C
}

В python должна помочь стандартная библиотека " tertools ". Взгляни на combinations() функции, может быть, другие в зависимости от того, что именно вы хотите. Вы хотите, чтобы повторы были разрешены? Важен ли порядок?

Другие вопросы по тегам