Funny string python solution
Answering your specific questions:


  Have used slow version of palindrome check assuming string is not going to be too long. Hope it doesn't affect performance that much.


You made a very good choice. This solution is simpler and more readable, you may switch to a new faster implementation later iff performance becomes a problem and you are sure is_palindrome is the problem.


  Approached problem via functional style, could have done all the computation in the same loop but is it a good practice?


To be precise on terminology, you used an imperative style with subroutines. I think that the use of subroutines ("functions") like you do greatly improves readability, so well done.



You may re-factor into functions further by writing a function to return pairs from a list and calling it from create_difference_list