extract names in a list of names
I'm not an expert here, so here's my (brute force?) method.

SeatGeek has open-sourced a python library called fuzzywuzzy which is great at text matching.  It has a function called token_set_ratio that compares two multi-word strings and scores their distance.  It can consider just the intersection of individual words and score only that intersection. eg "Barack Obama Bill Clinton Madeleine Albright" will get a score of 100 with "Bill Clinton", but also with "Bill Barack".

You'll need to build a list of known names, judging by the list they're famous people, which a quick google search shows hundreds of sites that have that ready for you.  With that list, you can just loop your way through, computing a score with token_set_ratio.  If the famous name beats some threshold score against your string, you append it to a list of captured names.