<:> In Java
Given knowledge of the substitution procedures involved, it is possible
to write a program which generates possible combinations from a
suitably-structured dictionary.
WhatDoYouCall.java provides a very simple illustration of this approach.
Ritchie's STANDUP system is a more advanced application.