casepy
=======================================

|Documentation Status| |made-with-python| |PyPI download total| |GitHub license|

.. |made-with-python| image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg
   :target: https://www.python.org/

.. |PyPI download total| image:: https://img.shields.io/pypi/dm/casepy.svg
   :target: https://pypi.org/project/casepy/

.. |Documentation Status| image:: https://readthedocs.org/projects/casepy/badge/?version=latest
   :target: http://casepy.readthedocs.io/?badge=latest

.. |GitHub license| image:: https://img.shields.io/github/license/Naereen/StrapDown.js.svg
   :target: https://github.com/Naereen/StrapDown.js/blob/master/LICENSE

**casepy** is a Python package for the advanced case combination and permutation calculation.

This package is designed to be possible to calculation of the case combination and permutation from the duplicated elements.

This package is designed to calculate combinations and permutations from the duplicate elements list.
You can designate the number of elements you want to select.
For instance, you can get all combinations and permutations of choosing 5 elements in a given list [1,1,2,3,4,5,5].

The combination and permutation list is sorted by numerical or alphabetical.
Using the n-th-permutations or n-th-combinations, you can get the n-th permutation or n-th combination of a given parameter without calculating 0-th to (n-1)-th case (current method).

Documentation: |Documentation Status| 

Installation
------------
You can install casepy via pip from PyPI:

.. code-block:: console
   
   $ pip install casepy

Quick Start
------------
.. code-block:: python
   
   import casepy

   element_list = [1, 2, 2, 3, 4]

   all_combinations = casepy.all_combinations(element_list, 2)
   # [[1, 2], [1, 3], [1, 4], [2, 2], [2, 3], [2, 4], [3, 4]]

   all_permutations = casepy.all_permutations(test_list, 2)
   # [[1, 2], [1, 3], [1, 4], [2, 1], [2, 2], [2, 3], [2, 4], [3, 1], [3, 2], [3, 4], [4, 1], [4, 2], [4, 3]]
