def renumber(num_list, 
	start=1, step=1, padding=4, 
	preserve=True, autopad=True):
	"""Renumber objects.

	Return a new list of integers, plus a padding value, as a tuple.

	Arguments:
		num_list (list) -- input list of integers
	Keyword arguments:
		start (int) -- start number for renumbering
		step (int) -- step / increment for renumbering
		padding (int) -- min number of digits for padding numbers
		preserve (bool) -- keep existing numerical values
		autopad (bool) -- calc the minimum padding for the number sequence
			e.g. 1-500 will need 3-digit padding, so will become 001-500
	"""
	new_num_list = []

	# Calculate padding automatically...
	if autopad:
		if preserve:
			max_num = max(num_list)
		else:
			max_num = start + (step*(len(num_list)-1))

		padding = len(str(max_num))

	# Regenerate lists
	index = start

	if preserve:
		for num in num_list:
			new_num_int = int(str(num).zfill(padding))
			new_num_list.append(new_num_int)

	else:
		for num in num_list:
			new_num_int = int(str(index).zfill(padding))
			new_num_list.append(new_num_int)
			index += step

	return new_num_list, padding