Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Python package for solving group based puzzles

Project description


Python package for solving group based puzzles

Puzzles like the Rubik's cube represent a mathematical group structure. The groups represented by these puzzles can usually be factored into simpler subgroups. In general these groups are either permutation subgroups (in which pieces are permutated with each other) or orientation subgroups (in which pieces can be in one of N different states of orientation).

For example, the Rubik's cube can be represented by four subgroups:

  • The orientation of edges
  • The orientation of corners
  • The permutation of edges
  • The permutation of corners

This principle was used by Herbert Kobiemba's two phase algorithm to represent the states of the Rubik's cube. The groupSolver project is meant to generalize this idea to other group based puzzles and create an API for solving or exploring the these puzzles' group structures given a subgroup factorization.


This project is maintained in GitLab and also hosted on PyPI like all Python packages are supposed to be. Thus, installing from PyPI can be done with: pip install groupsolver

For developing purposes, it's preferable to use a virtualenv. Use python3 -m venv /path/to/virtual/environment/ to create a virtualenv, then cd to where is, then run either python3 install or pip3 install . to install this source.


Tests in this project are implemented with the unittest framework. There are several ways to run these tests, but the simplest is to call python3 test


Thanks to Sphinx, documentation can be generated from comments by going to the doc directory and running make html. The generated documentation will have its root at doc/build/index.html.

The most recent documentation for the master branch can be found on GitLab Pages if it isn't broken.

Project details

Release history Release notifications | RSS feed

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for groupsolver, version 1.0
Filename, size File type Python version Upload date Hashes
Filename, size groupsolver-1.0-py3-none-any.whl (25.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size groupsolver-1.0.tar.gz (21.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page