Logic/Code duplication, improve readability?
Not a lot of changes, but maybe a bit more legible. 

a12 = entity.acceleration - other.acceleration
a21 = -a12
v12 = entity.velocity - other.velocity
v21 = -v12

result  = [ (p, v12, a12, l) for l in other.lines for p in entity.points ] +
          [ (p, v21, a21, l) for l in entity.lines for p in other.points ]


Obviously you could inline the v21 and a21 variables, but it's actually somewhat descriptive of what they represent to use those names.