import itertools

def negations(seq):
    for prefixes in itertools.product(['', '-'], repeat=len(seq)):
        yield [(prefix + value) for prefix, value in zip(prefixes, seq)]
print(list(negations(['a', 'b', 'c'])))
все комбинации сложного списка