Сочетание всех возможных случаев строки

Я пытаюсь создать программу для генерации всех возможных случаев капитализации строки в python. Например, учитывая «abcedfghij», мне нужна программа для генерации: Abcdefghij ABcdef … , aBcdef … ABCDEFGHIJ

И так далее. Я пытаюсь найти быстрый способ сделать это, но я не знаю, с чего начать.

3 Solutions collect form web for “Сочетание всех возможных случаев строки”

from itertools import product, izip def Cc(s): s = s.lower() for p in product(*[(0,1)]*len(s)): yield ''.join( c.upper() if t else c for t,c in izip(p,s)) print list(Cc("Dan")) 

печатает:

 ['dan', 'daN', 'dAn', 'dAN', 'Dan', 'DaN', 'DAn', 'DAN'] 

Подобно решению Дэна, но гораздо проще:

 >>> import itertools >>> def cc(s): ... return (''.join(t) for t in itertools.product(*zip(s.lower(), s.upper()))) ... >>> print list(cc('dan')) 
  ['dan', 'daN', 'dAn', 'dAN', 'Dan', 'DaN', 'DAn', 'DAN'] ' 
 import itertools def comb_gen(iterable): #Generate all combinations of items in iterable for r in range(len(iterable)+1): for i in itertools.combinations(iterable, r): yield i def upper_by_index(s, indexes): #return a string which characters specified in indexes is uppered return "".join( i.upper() if index in indexes else i for index, i in enumerate(s) ) my_string = "abcd" for i in comb_gen(range(len(my_string))): print(upper_by_index(my_string, i)) 

Вне:

 abcd Abcd aBcd abCd abcD ABcd AbCd AbcD aBCd aBcD abCD ABCd ABcD AbCD aBCD ABCD 
  • Расположение класса строки python в исходном коде
  • Поиск всех возможных перестановок заданной строки в python
  • Связать строки в python 2.4?
  • Самый быстрый способ изменить строку в python
  • Извлечение части текста строки с совпадением начала и конца с использованием регулярных выражений в Python
  • количество строк с перекрывающимися вхождениями
  • Преобразование строки в тип даты на Python
  • Как извлечь URL-адрес из строки с помощью python?
  • Как преобразовать строку с символами новой строки в список в Python?
  • Простой способ преобразования строки в словарь
  • Создание гистограммы строковых значений в python
  • Python - лучший язык программирования в мире.