This document presents a formal model and algorithm for generating permutations of a multiset, aimed at educational use in algorithms and computation courses. It defines an abstract machine to compute the successors of permutations in lexicographical order and analyzes the correctness and efficiency of the algorithm. The findings include a modified algorithm to potentially enhance execution speed in specific cases.