I am stuck on following problem: there is normal permutation function:
def all_perms(elements):
if len(elements) <=1:
yield elements
else:
for perm in all_perms(elements[1:]):
for i in range(len(elements)):
yield perm[:i] + elements[0:1] + perm[i:]
Here I get as expected
for pz in all_perms([1,2,3]):
print(pz)
[1, 2, 3]
[2, 1, 3]
[2, 3, 1]
[1, 3, 2]
[3, 1, 2]
[3, 2, 1]
Then I have simple reverse function:
def reverse(rx):
return -rx
How could look function perm_rev(iterable) resulting in permutation assuming each element has to be reversed? Answer for [1,2] would be like this:
for pz in perm_rev([1,2]):
print(pz)
[1,2]
[2,1]
[-1,2]
[1,-2]
[-2,1]
[2,-1]
[-1,-2]
[-2,-1]
Thank you!