def gen_column_names(n):
 col_names = list(DEFAULT_COLUMN_NAMES)
 if (n < len(col_names)):
  return list(take(n, col_names))
 else:
  n_left = (n - len(col_names))
  labels = [''.join(item) for item in take(n_left, itertools.product(DEFAULT_COLUMN_NAMES, DEFAULT_COLUMN_NAMES))]
  col_names.extend(labels)
  return col_names

def gen_column_names ( n ) : col_names = list ( DEFAULT_COLUMN_NAMES ) if ( n < len ( col_names ) ) : return list ( take ( n , col_names ) ) else : n_left = ( n - len ( col_names ) ) labels = [ '' . join ( item ) for item in take ( n_left , itertools . product ( DEFAULT_COLUMN_NAMES , DEFAULT_COLUMN_NAMES ) ) ] col_names . extend ( labels ) return col_names
produces list of unique column names of length n .