As an addition to Gonzalo Medina's answer, I use this:
\documentclass{beamer}
\usepackage{xpatch}
\makeatletter
\newcommand{\my@beamer@setsep}{%
\ifnum@itemdepth=1\relax
\setlength\itemsep{\my@beamer@itemsepi}% separation for first level
\else
\ifnum@itemdepth=2\relax
\setlength\itemsep{\my@beamer@itemsepii}% separation for second level
\else
\ifnum@itemdepth=3\relax
\setlength\itemsep{\my@beamer@itemsepiii}% separation for third level
\fi\fi\fi}
\newlength{\my@beamer@itemsepi}\setlength{\my@beamer@itemsepi}{3ex}
\newlength{\my@beamer@itemsepii}\setlength{\my@beamer@itemsepii}{1.5ex}
\newlength{\my@beamer@itemsepiii}\setlength{\my@beamer@itemsepiii}{1.5ex}
\newcommand\setlistsep[3]{%
\setlength{\my@beamer@itemsepi}{#1}%
\setlength{\my@beamer@itemsepii}{#2}%
\setlength{\my@beamer@itemsepiii}{#3}%
}
\xpatchcmd{\itemize}
{\def\makelabel}
{\my@beamer@setsep\def\makelabel}
{}
{}
\xpatchcmd{\beamer@enum@}
{\def\makelabel}
{\my@beamer@setsep\def\makelabel}
{}
{}
\makeatother
\begin{document}
\begin{frame}
\begin{columns}[onlytextwidth, T]
\begin{column}{.48\linewidth}
% First column
\begin{itemize}
\item First item.
\begin{itemize}
\item First subitem.
\item Second subitem.
\begin{itemize}
\item First subsubitem.
\item Second subsubitem.
\item Third subsubitem.
\end{itemize}
\item Third subitem.
\end{itemize}
\item Second item.
\item Third item.
\end{itemize}
\end{column}%
\hfill%
\begin{column}{.48\linewidth}
% second column
\begin{enumerate}
\item First item.
\begin{enumerate}
\item First subitem.
\item Second subitem.
\begin{enumerate}
\item First subsubitem.
\item Second subsubitem.
\item Third subsubitem.
\end{enumerate}
\item Third subitem.
\end{enumerate}
\item Second item.
\item Third item.
\end{enumerate}
\end{column}
\end{columns}
\end{frame}
\end{document}
so that I can then do \setlistsep{2ex}{1ex}{1ex} in the slide where I need to change the values.

If you want also to add to the separation of the first item in a sublist, you can change the \my@beamer@setsep to:
\newcommand{\my@beamer@setsep}{%
\ifnum\@itemdepth=1\relax
\setlength\itemsep{\my@beamer@itemsepi}% separation for first level
\else
\ifnum\@itemdepth=2\relax
\setlength\itemsep{\my@beamer@itemsepii}% separation for second level
\setlength\topsep{\my@beamer@itemsepii}% separation for second level
\else
\ifnum\@itemdepth=3\relax
\setlength\itemsep{\my@beamer@itemsepiii}% separation for third level
\setlength\topsep{\my@beamer@itemsepiii}% separation for second level
\fi\fi\fi}
to obtain

...or maybe it's better to use the previous itemsep as topsep:
\newcommand{\my@beamer@setsep}{%
\ifnum\@itemdepth=1\relax
\setlength\itemsep{\my@beamer@itemsepi}% separation for first level
\else
\ifnum\@itemdepth=2\relax
\setlength\itemsep{\my@beamer@itemsepii}% separation for second level
\setlength\topsep{\my@beamer@itemsepi}% separation for second level
\else
\ifnum\@itemdepth=3\relax
\setlength\itemsep{\my@beamer@itemsepiii}% separation for third level
\setlength\topsep{\my@beamer@itemsepii}% separation for second level
\fi\fi\fi}

(just a matter of taste)
\AtBeginEnvironment{itemize}{\setlength\itemsep{2.0em}}does not work? – Masroor Jan 30 '15 at 17:20\AtBeginEnvironment(frometoolbox) executes the code immediately before\itemizeso it won't have effect. – Gonzalo Medina Jan 30 '15 at 17:24etoolboxcan not be used in this case? – Masroor Jan 30 '15 at 17:29\itemizeis defined inbeamerwith an optional argument, usingetoolbox's\patchcmdmight produce undesired results.\xpatchcmdwas written to deal with those cases correctly. – Gonzalo Medina Jan 30 '15 at 17:33\setbeamertemplatework, one could use different spacing for body, subbody, subsubbody, etc. which would be a great advantage. – Mario Feb 24 '15 at 16:15stretch(factor)but no spacing appeared in the output. – BeingQuisitive Jan 15 '16 at 15:48topsepsetting. – Luke Davis Feb 20 '18 at 23:04\itemizein thexpatchcommand with\enumeratedidn't work for me. How to do this for enumerate? – GertVdE Mar 04 '20 at 13:59enumerateyou have to patch\beamer@enum@, see my answer... – Rmano Nov 06 '20 at 11:38