code: def generateLowerBoundList(confidence, numUniqueFeatures, numLocationsPerObject,
                             maxNumObjects):
    
    # We're choosing a location, checking its feature, and checking how many
    # *other* occurrences there are of this feature. So we check n - 1 locations.
    maxNumOtherLocations = maxNumObjects*10 - 1
  
    results = zip(itertools.count(1),
                  findBinomialNsWithLowerBoundSampleMinimum(
                    confidence,
                    itertools.count(1), 1./numUniqueFeatures, numLocationsPerObject,
                    maxNumOtherLocations))
  
    finalResults = [(numOtherLocations, interpolatedN / numLocationsPerObject)
                    for numOtherLocations, (interpolatedN, _, _) in results]
  
    return finalResults
docs: Metric: How unique is each object's most unique feature? Calculate the
    probabilistic lower bound for the number of occurrences of an object's most
    unique feature. For example, if confidence is 0.8, the tick "3" will be placed
    at the point where 80% of objects are completely composed of features with 3
    or more total occurrences, and 20% of objects have at least one feature that
    has 2 or fewer total occurrences.