How to find similar phrases
One option is Word Mover’s Distance (WMD). WMD is an algorithm for finding the distance between phrases. WMD is based on word embeddings (e.g., word2vec) which encode the semantic meaning of words into dense vectors.


  The WMD distance measures the dissimilarity between two text documents as the minimum amount of distance that the embedded words of one document need to "travel" to reach the embedded words of another document.


For example:


Source: "From Word Embeddings To Document Distances" Paper

For your problem, you would have to generate candidates then use WMD to find the best matches for a given phrase.