Tại sao bạn không đơn giản làm:
from itertools import permutations
perms = [''.join[p] for p in permutations[['s','t','a','c','k']]]
print perms
print len[perms]
print len[set[perms]]
Bạn không nhận được trùng lặp như bạn có thể thấy:
['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
Trong ví dụ này, bạn sẽ học cách tính toán tất cả các hoán vị của chuỗi.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Python sau:
- Chuỗi Python
- Python cho vòng lặp
Hoán vị là phương pháp chọn các phần tử từ một tập hợp theo những cách khác nhau.
Ví dụ: số cách mà các ký tự từ yup
có thể được chọn là yup
,
['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
1, ['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
2, ['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
3, ['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
4, ['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
5 và không chọn bất kỳ.Chúng tôi sẽ thực hiện tương tự trong các ví dụ sau.
Ví dụ 1: Sử dụng đệ quy
def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
Đầu ra
yup ypu uyp upy puy pyu None
Trong ví dụ này, đệ quy được sử dụng để tìm các hoán vị của chuỗi yup
.
- IF điều kiện in
7 được truyền dưới dạng đối số nếu nó bằng chiều dài của['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc', 'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta', 'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack', 'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks', 'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac', 'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt', 'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk', 'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs', 'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak', 'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks', 'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac', 'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs', 'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta', 'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats'] 120 120 [Finished in 0.3s]
8.['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc', 'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta', 'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack', 'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks', 'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac', 'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt', 'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk', 'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs', 'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak', 'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks', 'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac', 'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs', 'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta', 'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats'] 120 120 [Finished in 0.3s]
- Trong mỗi lần lặp của vòng lặp, mỗi ký tự của
yup
được lưu trữ trong
0.def get_permutation[string, i=0]: if i == len[string]: print["".join[string]] for j in range[i, len[string]]: words = [c for c in string] # swap words[i], words[j] = words[j], words[i] get_permutation[words, i + 1] print[get_permutation['yup']]
- Các yếu tố của các từ được hoán đổi. Theo cách này, chúng tôi đạt được tất cả các kết hợp khác nhau của các nhân vật.
- Quá trình này tiếp tục cho đến khi đạt được độ dài tối đa.
Ví dụ 2: Sử dụng itertools
from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
Đầu ra
['pro', 'por', 'rpo', 'rop', 'opr', 'orp']
Trong ví dụ này, đệ quy được sử dụng để tìm các hoán vị của chuỗi yup
.
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA
Bàn luận
Python3
def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
2 def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
3def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
4 def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
5def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
4 ['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
7Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA4
yup ypu uyp upy puy pyu None2
Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA6
yup ypu uyp upy puy pyu None0
yup ypu uyp upy puy pyu None7
yup ypu uyp upy puy pyu None8
yup ypu uyp upy puy pyu None9
from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
0from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
1from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
2from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
3 from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
4from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
5 from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
6yup ypu uyp upy puy pyu None2
yup ypu uyp upy puy pyu None2
from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
9['pro', 'por', 'rpo', 'rop', 'opr', 'orp']0
def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
8 yup ypu uyp upy puy pyu None2
['pro', 'por', 'rpo', 'rop', 'opr', 'orp']3
['pro', 'por', 'rpo', 'rop', 'opr', 'orp']0
def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
7def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
8yup ypu uyp upy puy pyu None5
Output:
ABC ACB BAC BCA CAB CBA
Hoán vị và kết hợp trong hoán vị Python của một chuỗi nhất định với các ký tự lặp lại ý tưởng là sử dụng từ điển để tránh in bản sao. & Nbsp;Permutations of a given string with repeating characters The idea is to use dictionary to avoid printing duplicates.
Python3
def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
2 def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
3def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
4 def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
5def get_permutation[string, i=0]:
if i == len[string]:
print["".join[string]]
for j in range[i, len[string]]:
words = [c for c in string]
# swap
words[i], words[j] = words[j], words[i]
get_permutation[words, i + 1]
print[get_permutation['yup']]
4 ['stack', 'stakc', 'stcak', 'stcka', 'stkac', 'stkca', 'satck', 'satkc',
'sactk', 'sackt', 'saktc', 'sakct', 'sctak', 'sctka', 'scatk', 'scakt', 'sckta',
'sckat', 'sktac', 'sktca', 'skatc', 'skact', 'skcta', 'skcat', 'tsack',
'tsakc', 'tscak', 'tscka', 'tskac', 'tskca', 'tasck', 'taskc', 'tacsk', 'tacks',
'taksc', 'takcs', 'tcsak', 'tcska', 'tcask', 'tcaks', 'tcksa', 'tckas', 'tksac',
'tksca', 'tkasc', 'tkacs', 'tkcsa', 'tkcas', 'astck', 'astkc', 'asctk', 'asckt',
'asktc', 'askct', 'atsck', 'atskc', 'atcsk', 'atcks', 'atksc', 'atkcs', 'acstk',
'acskt', 'actsk', 'actks', 'ackst', 'ackts', 'akstc', 'aksct', 'aktsc', 'aktcs',
'akcst', 'akcts', 'cstak', 'cstka', 'csatk', 'csakt', 'cskta', 'cskat', 'ctsak',
'ctska', 'ctask', 'ctaks', 'ctksa', 'ctkas', 'castk', 'caskt', 'catsk', 'catks',
'cakst', 'cakts', 'cksta', 'cksat', 'cktsa', 'cktas', 'ckast', 'ckats', 'kstac',
'kstca', 'ksatc', 'ksact', 'kscta', 'kscat', 'ktsac', 'ktsca', 'ktasc', 'ktacs',
'ktcsa', 'ktcas', 'kastc', 'kasct', 'katsc', 'katcs', 'kacst', 'kacts', 'kcsta',
'kcsat', 'kctsa', 'kctas', 'kcast', 'kcats']
120
120
[Finished in 0.3s]
7Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA4
yup ypu uyp upy puy pyu None2
Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA6
Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA7
yup ypu uyp upy puy pyu None2
Input : str = 'ABC' Output : ABC ACB BAC BCA CAB CBA9
ABC ACB BAC BCA CAB CBA0
yup ypu uyp upy puy pyu None2
ABC ACB BAC BCA CAB CBA2
ABC ACB BAC BCA CAB CBA3
yup ypu uyp upy puy pyu None2
ABC ACB BAC BCA CAB CBA5
yup ypu uyp upy puy pyu None7
ABC ACB BAC BCA CAB CBA77____39
from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
0GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG0
['pro', 'por', 'rpo', 'rop', 'opr', 'orp']0
from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
5 GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG3
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG4
yup ypu uyp upy puy pyu None9
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG6
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG7
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG8
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG7
from itertools import permutations
words = [''.join[p] for p in permutations['pro']]
print[words]
3yup
1Output:
GEEK GEKE GKEE EGEK EGKE EEGK EEKG EKGE EKEG KGEE KEGE KEEG
Độ phức tạp về thời gian: O [n!] Trong đó n là kích thước của chuỗi.AUXILIARY: O [n!] & NBSP; O[n!] where n is the size of the string.
Auxiliary Space: O[n!]