generate unique ids of any length