8. The article of manufacture of claim 7 , further comprising providing one of the input string and a selected string from the list of candidate strings as an input to an application.
7. An article of manufacture comprising: a computer storage medium; computer program instructions stored on the computer storage medium which, when processed by a processing device, instruct the processing device to perform a process comprising: receiving an input string of characters into memory; accessing an input history, the input history comprising a plurality of strings of characters previously used and stored in memory, generating in memory an initial list of candidate strings, the candidate strings being strings in the input history having a prefix that matches the input string; selecting M most recent candidate strings and N most frequent candidate strings from the initial list of candidate strings, to create a secondary list of candidate strings; sorting the secondary list of candidate strings by recency in the input history to provide a sorted list of candidate strings; altering the sorted list of candidate strings to provide a final list of candidate strings, such that strings are dissimilar in a set of strings at a beginning of the final list of candidate strings; and presenting the final list of candidate strings for selection in place of the input string.