Python/dynamic_programming/subset_generation.py
2019-10-05 10:14:13 +05:00

44 lines
1.4 KiB
Python

# 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