Hướng dẫn how do you find permutations in python? - làm thế nào để bạn tìm thấy hoán vị trong python?

Python cung cấp các phương pháp trực tiếp để tìm hoán vị và kết hợp một chuỗi. Các phương pháp này có mặt trong gói itertools.

Permutation  

Đầu tiên nhập gói ITERTOOLS để thực hiện phương thức hoán vị trong Python. Phương thức này lấy một danh sách làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu có chứa tất cả các hoán vị trong một biểu mẫu danh sách. & Nbsp; & nbsp;
 

Python3

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
1

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
2
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
4
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
9
(1, 2)
(1, 3)
(2, 3)
0

(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 3)
2
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 3)
4
(1, 2)
(1, 3)
(2, 3)
5

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
(1, 2)
(1, 3)
(2, 3)
8

Output:  

(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

Nó tạo ra n! hoán vị nếu độ dài của chuỗi đầu vào là n. & nbsp; nếu muốn & nbsp; để có được hoán vị có độ dài l sau đó thực hiện nó theo cách này. & nbsp; & nbsp;
If want  to get permutations of length L then implement it in this way. 
 

Python3

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
1

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
2
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
4
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
9
(1, 2)
(1, 3)
(2, 3)
0

(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 3)
2
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 3)
4
(1, 2)
(1, 3)
(2, 3)
5

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
(1, 2)
(1, 3)
(2, 3)
8

Output: 

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)

Nó tạo ra n! hoán vị nếu độ dài của chuỗi đầu vào là n. & nbsp; nếu muốn & nbsp; để có được hoán vị có độ dài l sau đó thực hiện nó theo cách này. & nbsp; & nbsp;

Combination  

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
2
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
4
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
9
(2, 1)
(2, 3)
(1, 3)
1
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(2, 1)
(2, 3)
(1, 3)
3
 

Python3

Nó tạo ra ncr * r! hoán vị Nếu độ dài của chuỗi đầu vào là n và tham số đầu vào là r.

Phương thức này lấy một danh sách và đầu vào r làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu chứa tất cả các kết hợp có thể có của độ dài r trong một biểu mẫu danh sách. & Nbsp; & nbsp;

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
5

(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
8
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
9
(2, 1)
(2, 3)
(1, 3)
1
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
['1', '2', '3']
['1', '3', '2']
['2', '1', '3']
['2', '3', '1']
['3', '1', '2']
['3', '2', '1']
6

Output:  

(1, 2)
(1, 3)
(2, 3)

(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 3)
2
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 3)
4
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
1
 

Python3

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
4

1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
8

(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
8
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
9
(2, 1)
(2, 3)
(1, 3)
1
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
['1', '2', '3']
['1', '3', '2']
['2', '1', '3']
['2', '3', '1']
['3', '1', '2']
['3', '2', '1']
6

Output: 

(1, 2)
(1, 3)
(2, 3)

(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 3)
2
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 3)
4
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
1
 

Python3

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
4

1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
8

(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 
8
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
9
(2, 1)
(2, 3)
(1, 3)
1
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
7
['1', '2', '3']
['1', '3', '2']
['2', '1', '3']
['2', '3', '1']
['3', '1', '2']
['3', '2', '1']
6

Output: 

(2, 1)
(2, 3)
(1, 3)

(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 3)
2
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 3)
4
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
1
 

Python3

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
4

1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 
8

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
(1, 2)
(1, 3)
(2, 3)
8

Output:

(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3) 

Hoán vị là một sự sắp xếp của các đối tượng theo một thứ tự cụ thể. Thứ tự sắp xếp đối tượng là rất quan trọng. Số lượng hoán vị trên một bộ các phần tử & nbsp; n & nbsp; được đưa ra bởi & nbsp; N!. & nbsp; ví dụ, có & nbsp; 2! = 2*1 = 2 & nbsp; hoán vị của & nbsp; {1, 2}, cụ thể là & nbsp; {1, 2} & nbsp; và & nbsp; = 3*2*1 = 6 & nbsp; hoán vị của & nbsp; {1, 2, 3}, cụ thể là & nbsp; {1, 2, 3}, & nbsp; {1, 3, 2}, & nbsp; & nbsp; {2, 3, 1}, & nbsp; {3, 1, 2} và & nbsp; {3, 2, 1}. & nbsp;
 

Phương pháp 1 (quay lại) & nbsp; chúng ta có thể sử dụng giải pháp đệ quy dựa trên backtracking được thảo luận ở đây.
We can use the backtracking based recursive solution discussed here.
Method 2 
The idea is to one by one extract all elements, place them at first position and recur for remaining list.
 

Python3

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
44
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
45

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
47
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
48
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
49
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
52
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
53

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
54
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
55
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
56

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
47
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
48
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
49
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
53

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
54
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
55
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
67

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
69
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
71

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 3)
22____23
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
76
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
777____148
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
79

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
80
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
81
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
83

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
80
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
85
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
87
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
88
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
89
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
88
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
5
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
92

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
80
(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
95
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
97

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
98
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
99
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
88
(1, 2)
(1, 3)
(2, 3)
01

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
55
(1, 2)
(1, 3)
(2, 3)
04

(1, 2)
(1, 3)
(2, 3)
05
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
3
(1, 2)
(1, 3)
(2, 3)
4
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
77
(1, 2)
(1, 3)
(2, 3)
09
['1', '2', '3']
['1', '3', '2']
['2', '1', '3']
['2', '3', '1']
['3', '1', '2']
['3', '2', '1']
6

(1, 2)
(1, 3)
(2, 3)
1
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
95
(1, 2)
(1, 3)
(2, 3)
3
(1, 2)
(1, 3)
(2, 3)
14

(1, 2)
(1, 3)
(2, 3)
6
(1, 2)
(1, 3)
(2, 3)
7
(1, 2)
(1, 3)
(2, 3)
17

Output:

['1', '2', '3']
['1', '3', '2']
['2', '1', '3']
['2', '3', '1']
['3', '1', '2']
['3', '2', '1']

Phương pháp 3 (hàm trực tiếp) & nbsp; chúng ta có thể làm điều đó bằng cách sử dụng chức năng hoán vị tích hợp trong thư viện ITERTOOLS. Đó là kỹ thuật ngắn nhất để tìm thấy hoán vị. & NBSP;
We can do it by simply using the built-in permutation function in itertools library. It is the shortest technique to find the permutation.
 

Python3

from itertools

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
0
(1, 2)
(1, 3)
(2, 3)
21

Các

(1, 2)
(1, 3)
(2, 3)
7
(1, 2)
(1, 3)
(2, 3)
33

Output:

[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] 

Bài viết này được đóng góp bởi Arpit Agarwal. Nếu bạn thích GeekSforGeeks và muốn đóng góp, bạn cũng có thể viết một bài viết và gửi bài viết của bạn. Xem bài viết của bạn xuất hiện trên trang chính của GeekSforGeek và giúp các chuyên viên máy tính khác. Xin vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên & NBSP;Arpit Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
 


Làm thế nào để một chức năng hoán vị hoạt động trong Python?

Hán có nghĩa là các đơn đặt hàng khác nhau mà các yếu tố có thể được sắp xếp.Các yếu tố có thể là của một chuỗi hoặc một danh sách hoặc bất kỳ loại dữ liệu nào khác.Đó là sự sắp xếp lại các mặt hàng theo những cách khác nhau.Python có các phương pháp khác nhau bên trong một gói có tên Itertools, có thể giúp chúng ta đạt được các hoán vị Python.different orders by which elements can be arranged. The elements might be of a string, or a list, or any other data type. It is the rearrangement of items in different ways. Python has different methods inside a package called itertools, which can help us achieve python permutations.

Hoán vị có nghĩa là gì trong Python?

Một hoán vị, còn được gọi là số sắp xếp của người Viking, hoặc đơn đặt hàng, là một sự sắp xếp lại các yếu tố của một danh sách được đặt hàng thành một thư từ một-một với chính S.Một chuỗi độ dài n có n!hoán vị.Ví dụ: Đầu vào: STR = 'ABC' Đầu ra: ABC ACB BAC BCA CABA.a rearrangement of the elements of an ordered list S into a one-to-one correspondence with S itself. A string of length n has n! permutation. Examples: Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA.

Gói nào chứa hoán vị trong Python?

Python cung cấp các phương pháp trực tiếp để tìm hoán vị và kết hợp một chuỗi.Các phương pháp này có mặt trong gói itertools.itertools package.