Ad

I have decided to update the scope to take a list and the number of terms that you wish to find the maximum product of.

This should be a more general solution to the problem.

I have included error handling for if the number of terms exceeds the length of sequence.

Code
Diff
  • import numpy
    import itertools
    
    def maximum_product_of_three(sequence, terms):
        max = 0
        combos = itertools.combinations(sequence, terms)
        
        for set in combos:
            if numpy.prod(set) > max:
                max = numpy.prod(set)
                combo = set
    
        return combo, max
    • def maximum_product_of_three(a):
    • a.sort()
    • return max(a[0]*a[1]*a[-1], a[-3]*a[-2]*a[-1])
    • import numpy
    • import itertools
    • def maximum_product_of_three(sequence, terms):
    • max = 0
    • combos = itertools.combinations(sequence, terms)
    • for set in combos:
    • if numpy.prod(set) > max:
    • max = numpy.prod(set)
    • combo = set
    • return combo, max