Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 내장 함수로 문자열 순열 구하기 – itertools.permutations 완벽 정리

이 튜토리얼에서는 Python의 내장 함수인 permutations를 사용하여 문자열의 모든 순열(permutation)을 구하는 방법을 알아보겠습니다. permutations 메서드는 표준 라이브러리인 itertools 모듈에 포함되어 있어 별도의 설치 없이 바로 사용할 수 있습니다.

문자열의 순열을 구하는 절차

  • itertools 모듈을 임포트합니다.
  • 순열을 구할 문자열을 초기화합니다.
  • itertools.permutations 메서드를 호출하여 문자열의 순열을 생성합니다.
  • 메서드는 객체를 반환하므로, 이를 list()로 변환하여 결과를 확인합니다.
    • 변환된 리스트에는 각 순열이 튜플(tuple) 형태로 저장됩니다.

예제 코드

그럼 실제 프로그램을 살펴보겠습니다.

## 모듈 임포트
import itertools
## 문자열 초기화
string = "XYZ"
## itertools.permutations 메서드 사용
permutaion_list = list(itertools.permutations(string))
## 리스트 형태의 결과 출력
print("-----------문자열 순열(튜플 형태)----------------")
print(permutaion_list)
## 'join' 메서드를 사용해 튜플을 문자열로 변환
print("-------------문자열 형태의 순열-----------------")
for tup in permutaion_list:
    print("".join(tup))

실행 결과

위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

-----------문자열 순열(튜플 형태)----------------
[('X', 'Y', 'Z'), ('X', 'Z', 'Y'), ('Y', 'X', 'Z'), ('Y', 'Z', 'X'), ('Z', 'X', 'Y'), ('Z', 'Y', 'X')]
-------------문자열 형태의 순열-----------------
XYZ
XZY
YXZ
YZX
ZXY
ZYX

추가 팁

3개의 서로 다른 문자로 이루어진 문자열의 순열 개수는 3! = 6개입니다. 일반적으로 길이가 n인 문자열의 순열은 n!개가 생성되므로, 문자열이 길어질수록 결과의 개수가 기하급수적으로 늘어난다는 점에 유의하세요. 만약 일부 문자만 사용한 부분 순열이 필요하다면 itertools.permutations(string, r)처럼 두 번째 인자 r을 지정하면 됩니다.

프로그램에 대해 궁금한 점이 있다면 댓글로 남겨주세요.