docs: def _generate_number(self, prefix, length):
          """
          'prefix' is the start of the CC number as a string, any number of digits.
          'length' is the length of the CC number to generate. Typically 13 or 16
          """
          number = prefix
          # Generate random char digits
          number += '#' * (length - len(prefix) - 1)
          number = self.numerify(number)
          reverse = number[::-1]
          # Calculate sum
          tot = 0
          pos = 0
          while pos < length - 1:
              tot += Provider.luhn_lookup[reverse[pos]]
              if pos != (length - 2):
                  tot += int(reverse[pos + 1])
              pos += 2
          # Calculate check digit
          check_digit = (10 - (tot % 10)) % 10
          number += str(check_digit)
          return number