I've implemented many varied means for generating permutations to be  keys with certain algorithms.  These utilities can be set to have a  custom default that generates a more or less a peculiar domain of  permutations.  If your correspondent uses the same default key, any  other keys produced by it could be simply exchanged, even perhaps  The laughable objection was that specific keys might be easier to  remember via a protocol to generate than some standardized series of  all possible keys for a definite set of elements.  So it goes, make it  friendly, useful, and easily made obscure to produce such keys. I see  nothing wrong with that plus great advantage of using such a plan.  The functional code allows more exclusive protocols if desired but as  always, memory busters are self-defeating.  While testing keys, I use  many, some favorites but most too random to recall, even unknown  combinations of key presses. Note that such entries are usually not  true permutations but the function will use any entry in a way to  scramble the current base permutation to produce a specific useable  Without an example is this sufficiently descriptive? Something similar  might be made to generate keys of any length of any set where the key  need not even be in a permuted form but a sequence of any elements