python positive and negative number list possibilities

list, python

Solution

For just numbers, you can use `itertools.product` to create all combos, after generating a list with both positive and negative numbers:

from itertools import product

def foo(nums):
    return list(product(*((x, -x) for x in nums)))

Demo:

>>> foo([-4])
[(4,), (-4,)]
>>> foo([-1, 3])
[(1, 3), (1, -3), (-1, 3), (-1, -3)]
>>> foo([1, 3])
[(1, 3), (1, -3), (-1, 3), (-1, -3)]
>>> foo([1, -3, 4])
[(1, 3, 4), (1, 3, -4), (1, -3, 4), (1, -3, -4), (-1, 3, 4), (-1, 3, -4), (-1, -3, 4), (-1, -3, -4)]

Problem

I'm trying to make a function in Python that takes a list of integers as input and returns a greater list containing all positive and negative possibilities of those numbers. Pretend '+' is a positive number and '-' is a negative number The output should match up with: ``` foo([-4]) >>> [ [4], [-4] ] foo([+, +]) >>> [ [+,+], [+,-], [-,+], [-,-] ] foo([-, +]) >>> [ [+,+], [+,-], [-,+], [-,-] ] foo([-1, 3]) >>> [ [1,3], [1,-3], [-1,3], [-1,-3] ] foo( [+,-,+] ) >>> [ [-,-,-],[+,-,-],[-,+,-],[-,-,+],[+,+,-],[+,-,+],[-,+,+],[+,+,+] ] ```

Original source