모든 가능한 하위 집합 또는 주어진 문자열의 조합을 생성하고자하는 경우가 있습니다.파이썬에서 문자열의 가능한 모든 부분 집합을 얻는 방법
def list_string(str):
level=['']
if len(str) <=1:
level += str
return level
else:
for item in range(len(str)):
n_list=[]
for item1 in level:
n_list.append(item1 + str[item])
level += n_list
. return level
그래서 ('AB')
난 단지 얻을 [ '', 'a', 'b'가, 'AB'] 내가 인쇄 list_string를 호출하는 경우 : 지금까지 나는이 시도 목록에 'ba'가 누락되었습니다. 누구나 내가 어디에서 잘못하고 있는지 말할 수 있습니다. itertools 또는 모듈을 사용하지 않고이 작업을 수행하고 싶습니다.
이 지금 당신의 조건에 if
문을 작동
['aa', 'ab', 'ba', 'bb']
를 반환해야
def list_string(str):
level = [x+y for x in str for y in str if len(str) > 1]
return level
그런 다음 list_string ('AB')를 실행
https://docs.python.org/2/library/itertools.html#itertools.permutations – Ffisegydd
구문 오류 SyntaxError있을 나타납니다 마지막 라인에서 기다리고있어. – Ffisegydd
list_string (str) 및 list_str (reverse (str))에서 얻은 것의 집합을 만듭니다. – Ben