Думаю, стоит начинать с малого числа секций, все случаи нарисовав. Также можно не называть «обратные» секции отдельными числами, а вместо этого указывать ориентацию бумаги. Например, сложенная гармошкой шпаргалка будет иметь код

, где диакритика показывает противоположность ориентации, и заодно можно решить, считать ли

тем же (по крайней мере,

— точно то же, это перевёрнутая как целое такая гармошка).
-- Пт авг 26, 2016 21:30:15 --Можно представить, что на каждой секции нарисована стрелка, притом все стрелки показывают в одну и ту же сторону. Тогда можно добавлять по секции к уже имеющейся конфигурации к тому месту, где стрелки заканчиваются. Это можно будет сделать в общем случае несколькими случаями, по-разному загибая секцию по отношению к текущему концу и уже имеющимся складкам, которые по коду должно быть не очень сложно восстановить. Возможно, перечисление всех конфигураций предыдущего поколения не удастся как-то упростить, не знаю. Даже если конец ушёл под слой-другой бумаги, он в будущем сможет сбежать на свободу, так что эти слои нельзя будет игнорировать.