subset generation

    Our FREE site is mostly funded by the Amazon ads ⇓below⇓.

    Support us by clicking ⇑above⇑ next time you plan to buy a product on Amazon.

    # python program to print all subset combination of n element in given set of r element .
    # arr[]  ---> Input Array
    # data[] ---> Temporary array to store current combination
    # start & end ---> Staring and Ending indexes in arr[]
    # index  ---> Current index in data[]
    # r ---> Size of a combination to be printed
    def combinationUtil(arr, n, r, index, data, i):
        # Current combination is ready to be printed,
        # print it
        if index == r:
            for j in range(r):
                print(data[j], end=" ")
            print(" ")
            return
        #  When no more elements are there to put in data[]
        if i >= n:
            return
        # current is included, put next at next
        # location
        data[index] = arr[i]
        combinationUtil(arr, n, r, index + 1, data, i + 1)
        # current is excluded, replace it with
        # next (Note that i+1 is passed, but
        # index is not changed)
        combinationUtil(arr, n, r, index, data, i + 1)
        # The main function that prints all combinations
        # of size r in arr[] of size n. This function
        # mainly uses combinationUtil()
    
    
    def printcombination(arr, n, r):
        # A temporary array to store all combination
        # one by one
        data = [0] * r
        # Print all combination using temprary
        # array 'data[]'
        combinationUtil(arr, n, r, 0, data, 0)
    
    
    # Driver function to check for above function
    arr = [10, 20, 30, 40, 50]
    printcombination(arr, len(arr), 3)
    # This code is contributed by Ambuj sahu