I would respectfully like to contribute to this very interesting and rich thread which has already been running very long. However, I would like to ask all other contributors I they could possibly give
The subject of permutations seems to be of immensely general interest and the internet is full of articles explaining the concept and giving nice examples in virtually all known programming languages.
Special thanks go to @le_m whose answer not only explicitly mentions the name of Heap's method, but also provides a fine benchmark over all other algorithms proposed in the thread.