Как генерировать все комбинации набора символов без повторений?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как генерировать все комбинации набора символов без повторений?

Сообщение Anonymous »

У меня есть следующий список: < /p>

Код: Выделить всё

['a', 'b', 'c']
< /code>

Я смотрю на способ сгенерировать все возможные строки, которые содержат эти символы со следующими ограничениями: < /p>


[*] Символ может не произойти несколько раз (aab
, aba , abca и т. д. недопустим)
Символ может быть исключен ( действителен, даже если C нет; также действителен, даже если B и c нет).

Код: Выделить всё

[''.join(p) for p in permutations('abc')]
Для генерации всех строк, которые содержат , b и c . Однако я должен также сделать < /p>

[''.join(p) for p in permutations('ab')]
[''.join(p) for p in permutations('ac')]
[''.join(p) for p in permutations('bc')]
< /code>

Как вы, вероятно, можете сказать, является ли первоначальный список доступных символов, мне нужно много работать. Так что я ищу элегантный способ в Python, чтобы генерировать все вышеперечисленное с помощью списка допустимых символов в качестве ввода: < /p>

def generate(vals=['a', 'b', 'c']):
# The initial list of allowed characters also has to be part of the
# final list since these also represent valid values
res = vals
# Generate all possible strings and store in res

return res
< /code>

Мне нужно это, так как я хочу предоставить параметр для запроса поста для моего веб -сервера, где параметр (давайте назовут его val < /code>) может принимать разные уникальные значения (либо отдельные символы, либо комбинацию из них), чтобы запустить некоторые генерации данных. Список доступных значений со временем будет расти, поэтому я хотел бы облегчить обработку запроса, автоматизируя проверку, если данные значения для val < /code> являются действительными. Как это сделать.

Подробнее здесь: https://stackoverflow.com/questions/490 ... epetitions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»