Python cung cấp các phương thức trực tiếp để tìm các hoán vị và tổ hợp của một dãy. Các phương thức này có trong gói itertools
Hoán vị
Đầu tiên hãy nhập gói itertools để triển khai 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 gồm các bộ chứa tất cả các hoán vị ở dạng danh sách.
Python3
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]36
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]37
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]38
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]39
[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]2
[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]8
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]03
[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]05
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]06
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]07
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]08
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]09
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]01
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]03
đầu ra.
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]4
Nó tạo ra n. hoán vị nếu độ dài của chuỗi đầu vào là n.
Nếu muốn nhận các hoán vị có độ dài L thì hãy thực hiện theo cách này.
Python3
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]36
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]05
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]38
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]39
[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]91
[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]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]8
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]91
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]93
[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]05
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]06
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]07
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]08
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]09
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]01
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]03
đầu ra.
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]
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
Sự phối hợp
Phương thức này lấy một danh sách và một đầu vào r làm đầu vào và trả về một danh sách đối tượng gồm các bộ chứa tất cả các kết hợp có thể có của độ dài r trong một dạng danh sách.
Python3
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]36
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]365
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]38
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]39
[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]369
[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]371
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]372
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]373
[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]375
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]8
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]91
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]383
[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]385
________ 106 ________ 107 ________ 108 ________ 109 ________ 1390
________ 101 ________ 102 ________ 1393
đầu ra.
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]0
1. Các kết hợp được phát ra theo thứ tự sắp xếp từ điển 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ự đã sắp xếp.
Python3
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]36
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]395
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]38
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]39
[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]399
[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]01
[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]373
[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]375
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]8
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]91
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]93
[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]15
________ 106 ________ 107 ________ 108 ________ 109 ________ 020
________ 101 ________ 102 ________ 1393
đầu ra.
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]0
2. Các yếu tố được coi là duy nhất dựa trên vị trí của chúng, không dựa trên giá trị của chúng. Vì vậy, nếu các phần tử đầu vào là duy nhất, sẽ không có giá trị lặp lại trong mỗi kết hợp.
Python3
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]24
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]25
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]38
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]39
[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]399
[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]31
[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]373
[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]375
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]8
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]91
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]93
[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]15
________ 106 ________ 107 ________ 108 ________ 109 ________ 020
________ 101 ________ 102 ________ 1393
đầu ra.
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
3. Nếu chúng ta muốn tạo sự kết hợp của cùng một phần tử với cùng một phần tử thì chúng ta sử dụng tổ hợp_with_replacement.
Python3
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]24
[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, 1] [2, 3] [3, 1] [3, 2]38
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]39
[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]60
[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]62
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]373
[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]65
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]8
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]9
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]02
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]91
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]00
[1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2]93