Hướng dẫn how do you solve permutations in python? - làm thế nào để bạn giải quyết các 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.

Các hoán vị trở lại trong Python là gì?

hoán vị () Công cụ này trả về các hoán vị chiều dài liên tiếp của các phần tử trong một điều khác.Nếu không được chỉ định hoặc không có, thì mặc định theo chiều dài của có thể lặp lại và tất cả các hoán vị có độ dài đầy đủ có thể được tạo ra.successive length permutations of elements in an iterable. If is not specified or is None , then defaults to the length of the iterable, and all possible full length permutations are generated.