human
Can you provide a the Python program you requested given the following:
I found an interesting problem on https://www.codewars.com/kata/5b2d5be2dddf0be5b00000c4:
# Task

Given an array of roots of a polynomial equation, you should reconstruct this equation.

___

## Output details:

* If the power equals `1`, omit it: `x = 0` instead of `x^1 = 0`
* If the power equals `0`, omit the `x`: `x - 2 = 0` instead of `x - 2x^0 = 0`
* There should be no 2 signs in a row: `x - 1 = 0` instead of `x + -1 = 0`
* If the coefficient equals `0`, skip it: `x^2 - 1 = 0` instead of `x^2 + 0x - 1 = 0`
* Repeating roots should not be filtered out: `x^2 - 4x + 4 = 0` instead of `x - 2 = 0`
* The coefficient before `q^n` is always `1`: `x^n + ... = 0` instead of `Ax^n + ... = 0`

___

## Example:

```
polynomialize([0])        =>  "x = 0"
polynomialize([1])        =>  "x - 1 = 0"
polynomialize([1, -1])    =>  "x^2 - 1 = 0"
polynomialize([0, 2, 3])  =>  "x^3 - 5x^2 + 6x = 0"
```

___

## Tests:

```python
      Main suite:                  Edge cases:
 (Reference - 4000 ms)         (Reference - 30 ms)

N of roots | N of tests      N of roots | N of tests
-----------------------      -----------------------
    1-10   |   100              20-40   |    125
 700-750   |    25               2-20   |    125
```

I tried it in Python, but could not do it. Can you solve it?
assistant
#Here is the Python program you requested.

def polynomialize(roots):
    def add_root(poly, root):
        # Multiply poly * (x - root)
        poly1 = poly + [0] # Increase order (multiply by x)
        poly2 = [0] + [-root * coef for coef in poly] # Multiply by -root
        poly = [coef1 + coef2 for coef1, coef2 in zip(poly1, poly2)] # Add
        return poly
    def poly2str(poly):
        spoly = ""
        for i, coef in enumerate(poly):
            if i == 0:
                signum = ""
            elif coef > 0:
                signum = " + "
            elif coef < 0:
                signum = " - "
            else:
                continue
                
            if abs(coef) == 1:
                scoef = ""
            else:
                scoef = str(abs(coef))
            
            exp = len(poly)-i-1
            if exp == 1:
                sexp = "x"
            elif exp == 0:
                if scoef == "":
                    sexp = "1"
                else:
                    sexp = ""
            else:
                sexp = "x^"+str(exp)
            spoly += signum + scoef + sexp
        spoly += " = 0"
        return spoly
    
    poly = [1, -roots[0]]
    for root in roots[1:]:
        poly = add_root(poly, root)
        
    return poly2str(poly)