#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Jun 25 12:45:04 2020

@author: home
"""

import itertools as itls # bibliothèque qui permet de générer des permutations,
                         # des k-uplets, des parties d'une liste

# nombre total de parties d'un ensemble à n éléments : 2^n

def nombre_total_de_parties(n):
    """
    fonction qui :
    - prend en paramètre d'entrée le nombre n d'éléments d'un ensemble
      et un nombre k inférieur ou égal à n
    - affiche l'ensemble E = [1,2,3,...,n]
    - affiche toutes les parties à k éléments de E pour k compris entre 0 et n, et les dénombre
    - affiche le nombre total de parties de E.
    """
    S = 0
    L = []
    E = [i for i in range(1,n+1)]
    print("E = ",E)
    for k in range(n+1):
        L = list(itls.combinations(E,k))
        print("parties à ",k," éléments de E : ",L)
        print("nombre de parties à ",k," éléments de E : ",len(L))
        S = S + len(L)
    print("nombre total de parties de E : ",S)

# modifier (remplacer le nombre 4) le paramètre dans la fonction ci-dessous par le nombre souhaité :

print(nombre_total_de_parties(4))

