Используйте sympy
, чтобы построить многочлен из корней, а затем получить коэффициенты:
from sympy import Symbol, poly
x = Symbol('x')
roots = [-1, 1]
expr = 1
# polynomial in format (x-a)(x-b)(x-c)...
for i in roots:
expr *= (x - i)
p = poly(expr, x)
print(p)
print(p.all_coeffs())
Вывод:
Poly(x**2 - 1, x, domain='ZZ')
[1, 0, -1]
Обратите внимание, что это будет работать для произвольно длинного спискакорней.
Например, если корни [-1, 1, 2, 3, 4, 5, 6]
Вывод:
Poly(x**7 - 20*x**6 + 154*x**5 - 560*x**4 + 889*x**3 - 140*x**2 - 1044*x + 720, x, domain='ZZ')
[1, -20, 154, -560, 889, -140, -1044, 720]