インポートなしのソリューションを試してみたかった:
list_input = [1,1,1,1,1]
permutations = 2**len(list_input)
for p in range(permutations):
if p: # if not first iteration
mod = 1
for k, v in enumerate(list_input):
mod = mod/2.0 # needs to use modulus in steps
if not p % (permutations * mod):
list_input[k] *= -1
print(list_input)
出力:
[1, 1, 1, 1, 1]
[1, 1, 1, 1, -1]
[1, 1, 1, -1, 1]
[1, 1, 1, -1, -1]
[1, 1, -1, 1, 1]
[1, 1, -1, 1, -1]
[1, 1, -1, -1, 1]
[1, 1, -1, -1, -1]
[1, -1, 1, 1, 1]
[1, -1, 1, 1, -1]
[1, -1, 1, -1, 1]
[1, -1, 1, -1, -1]
[1, -1, -1, 1, 1]
[1, -1, -1, 1, -1]
[1, -1, -1, -1, 1]
[1, -1, -1, -1, -1]
[-1, 1, 1, 1, 1]
[-1, 1, 1, 1, -1]
[-1, 1, 1, -1, 1]
[-1, 1, 1, -1, -1]
[-1, 1, -1, 1, 1]
[-1, 1, -1, 1, -1]
[-1, 1, -1, -1, 1]
[-1, 1, -1, -1, -1]
[-1, -1, 1, 1, 1]
[-1, -1, 1, 1, -1]
[-1, -1, 1, -1, 1]
[-1, -1, 1, -1, -1]
[-1, -1, -1, 1, 1]
[-1, -1, -1, 1, -1]
[-1, -1, -1, -1, 1]
[-1, -1, -1, -1, -1]
なんて面白い。