2016-10-23 3 views

답변

3

한 가지 방법은 (자신의 소문자와 대문자 다양한 모두에서) 문자의 직교 제품을 생성하는 것입니다 정확히 3 대문자가있는 경우, 만 그들을 유지

from itertools import product 
def combs(s, n): 
    pairs = tuple(i.lower() + i.upper() for i in s) 
    for i in product(*pairs): 
     if sum(1 for j in i if j.isupper()) == n: 
      yield ''.join(i) 

for s in combs('abcde', 3): 
    print(s) 

출력

abCDE 
aBcDE 
aBCdE 
aBCDe 
AbcDE 
AbCdE 
AbCDe 
ABcdE 
ABcDe 
ABCde 
1
def f(s): 
    r = [] 
    for i in range(1, len(s)-1): 
     for j in range(i+1, len(s)): 
      r.append(s[:i].capitalize() + s[i:j].capitalize() + s[j:].capitalize()) 
    return r 
관련 문제