我希望能够生成一个由4位数字的全排列列表,其中:
- 所有四个数字都必须出现
- 如果两个倒序的序列相同,则它们是同一个解。例如(1,2,3,4) = (4,3,2,1)
- 您如何称呼这种类型的排列。
- 是否可能一步生成此列表。以下是一个在两步中生成它的示例。
import itertools
inp_list = range(1, 5)
# 1. Create the list of all permutations.
permutations = list(itertools.permutations(inp_list))
# 2. Remove sequences that are the reverse of another.
for _p in permutations[::-1]:
if _p[::-1] in permutations:
permutations.remove(_p)
for _p in permutations:
print("\t".join(map(str, _p)))