This week I implemented generational routines for Fixed density Lyndon words, necklaces and Debruijn cycles. Its still not completely tested so caveat emptor! You can check it out in my iterables branch. Apart from this I got the Permutations branch merged in this week. This was a long standing pull request and will allow folks … Continue reading

Permutation groups and Prufer codes

The last week was a bit hectic. It was the first time I had even been on a 13 hour flight. I had implemented Prufer codes before I left, which is basically a one-to-one mapping to labelled trees. Using Prufer codes, we can generate trees in an ordered manner, rank and unrank them and do … Continue reading

Networkx integration

So this week I managed to integrate the work I had done on the generation algorithm for iterables. It seems that people want implementations of complex objects for the sake of completeness as well as for its educative value. More on this later. So networkx integration is almost done. The code is a clinical wrapper … Continue reading


I spent the last week implementing some rather esoteric combinatorial objects such as Necklaces, Lyndon words and Chord diagrams. Up until now, all such generation algorithms were being dumped in the /sympy/utilities/iterables.py file. With the introduction of slightly more complex generation algorithms community member Chris Smith raised the question of the underlying motivation of such … Continue reading