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