I would like to be able to quickly and efficiently generate all possible permutations of a given list without any repeats, for example:
if selecting two items form ['A','B','C','D']
the possible permutations would be:
['A','B']
['A','C']
['A','D']
['B','C']
['B','D']
['C','D']
Where ['A','B']
is equal to -and therefore a repeat of- ['B','A']
For the simplest code that does what you specified, try this:
letters_list = ['A','B','C','D']
for i in range(4):
for j in range(4):
if i < j:
a = letters_list[i]
b = letters_list[j]
print([a,b])
Or if you want a more general code:
letters_list = ['A','B','C','D','E','F','G']
for i in range(len(letters_list)):
for j in range(len(letters_list)):
if i < j:
a = letters_list[i]
b = letters_list[j]
print([a,b])
And if, for example, you wanted all combinations of 3 letters:
letters_list = ['A','B','C','D','E','F','G']
for i in range(len(letters_list)):
for j in range(len(letters_list)):
for k in range(len(letters_list)):
if i < j < k:
a = letters_list[i]
b = letters_list[j]
c = letters_list[k]
print([a,b,c])
And if you prefer shorter code to readable code:
letters_list = ['A','B','C','D','E','F','G']
for i in range(len(letters_list)):
for j in range(len(letters_list)):
for k in range(len(letters_list)):
if i < j < k:
print([letters_list[i],letters_list[j],letters_list[k]])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.