As I said in comments a not so difficult way is to define new counter representation commands and tell enumitem (rather than enumerate) how to use it.
The idea is as follows: the internal counter command can be defined using \ifcase\or ...\or ...\fi similar to how \@fnsymbol is defined.
In order to make this a little bit more comfortable than defining the commands “by hand” we can define a macro that builds the counter representation commands from a csv list. etoolbox has handy tools to ease this task:
\documentclass{article}
\usepackage{enumitem,etoolbox}
\makeatletter
\newrobustcmd\csapptocmd[2]{%
\expandafter\apptocmd\expandafter{\csname#1\endcsname}{#2}{}{}%
}
\newrobustcmd\newcounterlist[2]{%
\def\@tmplist{}%
\forcsvlist{\listadd\@tmplist}{#2}%
% build the internal counter command:
\csdef{@#1}##1{\ifcase##1}%
\def\do##1{\csapptocmd{@#1}{\or##1}}%
\dolistloop\@tmplist
\csapptocmd{@#1}{\else\@ctrerr\fi}%
% define the counter interface command:
\csdef{#1}##1{\expandafter\csname @#1\expandafter\endcsname\csname c@##1\endcsname}%
}
% new counter lists:
\newcounterlist{greeklabel}{$\alpha$,$\beta$,$\gamma$}% add more
\newcounterlist{whatever}{aaa,bbb,ccc}% add more
% tell enumitem how to use the new counter representations:
\AddEnumerateCounter{\greeklabel}{\@greeklabel}{1}
\AddEnumerateCounter{\whatever}{\@whatever}{1}
\makeatother
\begin{document}
\begin{enumerate}[label=(\greeklabel*)]
\item first item
\item second item \label{beta}
\item third item
\end{enumerate}
\begin{enumerate}[label=\itshape\whatever* ---,ref=\whatever*]
\item first item
\item second item
\item third item \label{ccc}
\end{enumerate}
see \ref{beta} and \ref{ccc}
\end{document}

For adding new counter representation commands to enumerate's mechanism one needs to redefine \@enloop@. Below is a suggestion that does it via patching the command with etoolbox's \patchcmd:
\documentclass{article}
\usepackage{enumerate,etoolbox}
\makeatletter
\newrobustcmd\csapptocmd[2]{%
\expandafter\apptocmd\expandafter{\csname#1\endcsname}{#2}{}{}%
}
\newrobustcmd\newcounterlist[2]{%
\def\@tmplist{}%
\forcsvlist{\listadd\@tmplist}{#2}%
% build the internal counter command:
\csdef{@#1}##1{\ifcase##1}%
\def\do##1{\csapptocmd{@#1}{\or##1}}%
\dolistloop\@tmplist
\csapptocmd{@#1}{\else\@ctrerr\fi}%
% define the counter interface command:
\csdef{#1}##1{\expandafter\csname @#1\expandafter\endcsname\csname c@##1\endcsname}%
}
% new counter lists:
\newcounterlist{greeklabel}
{$\alpha$,$\beta$,$\gamma$,$\delta$,$\epsilon$,$\zeta$,$\eta$,$\iota$,$\theta$}% add more
\newcounterlist{whatever}{aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii}% add more
% adding the new counter commands to enumerate's mechanism:
\newrobustcmd*\addenumeratelabel[2]{%
\patchcmd\@enloop@
{\ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else}% search
{%
\ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else
\ifx #1\@entemp \def\@tempa{\@enLabel#2}\else
}% replace
{}% success
{}% failure
\patchcmd\@enloop@
{\fi}% search
{\fi\fi}% replace
{}% success
{}% failure
}
\addenumeratelabel{g}{\greeklabel}
\addenumeratelabel{w}{\whatever}
\makeatother
\begin{document}
\tracingmacros=1
\begin{enumerate}[(g)]
\item first item
\item second item \label{beta}
\item third item
\end{enumerate}
\begin{enumerate}[\itshape w ---]
\item first item
\item second item
\item third item \label{ccc}
\end{enumerate}
see \ref{beta} and \ref{ccc}
\end{document}

\enumerate« you mean »when using theenumeratepackage« I guess? – cgnieder Oct 26 '14 at 08:48enumitempackage which provides\AddEnumerateCounter(see http://tex.stackexchange.com/questions/118445) in a combination with custom counter representation commands (see http://tex.stackexchange.com/questions/124980/) – cgnieder Oct 26 '14 at 08:52\alpha,\roman,\arabic. One cannot via this way, generate one’s OWN lists. The only thing I can think of is something that works with Footnote: one can define ones own symbol-set via\DefineFNsymbols*{foo}{q,w,e,r,t,y,u,i,o,p,…,m}, and then one sets\setfnsymbol{foo}, which is able to convert a counter-value to a symbol in the defined list. I am hoping for something similar for enumerate. – Severus Oct 26 '14 at 09:23