Python interprets:
[ x1 * ( y3 - y2) + x2 * ( y1 - y3 ) + x3 * ( y2 - y1 )]
as a list, as it is surrounded by square brackets [ ]. That is why your program points out that it is dividing two lists. You may have used them like you would use in math, but the correct way is to use only parenthesis on expressions like this.
So your a should be:
a = ( x1 * ( y3 - y2) + x2 * ( y1 - y3 ) + x3 * ( y2 - y1 )) / (( x1 - x2) * ( x1 - x3) * ( x2 - x3))
Which works properly.