Алгоритм генерации перестановок с сохранением порядка элементов в группах
Если я правильно вас понял — можно использовать генератор всех перестановок с повторениями на следующем множестве:
Количество элементов = количеству тестируемых записей (3 в примере у вас)
Количество повторений каждого элемента = 3 (добавить, изменить, удалить).
И потом просто для каждого повторения элемента (их три) слева направо проставить «создать» «изменить» «удалить».

Но тут есть проблема — вы не можете протестировать цепочки «создать» «удалить» — для этого надо генерировать еще кучу возможных перестановок.

А вообще, во первых — вы так тестируете только корректное поведение, не проверяя что будет при ошибочных вызовах.
Второе — ИМХО (исходя из представленной информации) у вас подход не совсем верен, надо разбить код на модули и протестировать все только с одним элементом, и написать тесты на то, что при наличии нескольких элементов не происходит накладок (т.е. работа с ними ведется независимо).
А для тестирования «создать»/«удалить» нужно добавить случайное число с вероятностью 1/2, в зависимости от значения которого либо использовать «set» либо выбрасывать второе из вхождений вообще.